Matlab--从入门到精通(chapter2 matlab 基础知识)
Chapter2 Matlab 基础知识
1.基本数学运算符号
注:矩阵的右除是一般意义的除法,但是左除具有对称意义,即A./B=B.\A
2. 命令行中的常用标点
3.常见的操作命令
4.输出数据显示格式命令
注:在Matlab中,默认输出采用双精度的格式,默认采用format short g方式来进行显示
5.数值、变量和表达式
5-1.变量的命名规则
- 变量名对大小写敏感
- 变量名必须以字母开头,后面可以跟数字、下划线和字母
- 变量名最长可以采用63个字符,之后的字符串都将被忽略
- 关键字可以通过iskeyword命令来查询,或者可以通过isvarname来查询所定义的变量名
预定义的变量
注:被0除,系统会给出警告,并相应地用Inf或者NaN来表示这些计算结果
6.数值数据类型
- Matlab主要包括各种有无符号的整数型数据、双精度和单精度型的数据。
- 整数:主要包括8位、16位、32位和64位的有符号和无符号的整数数据类型。每种数据类型都可以通过函数intmax和intmin来查询上下限,class函数可以获取变量的数据类型;randperm(9)函数随机生成1-9的随机变量;不同的数据之间不能直接进行数学运算,但是双精度标量和整型数据之间的数学运算可以进行。
- 浮点数:双精度(double)和单精度(single),其取值范围可以通过realmin、realmax来获得;单精度类型浮点数的精度可以通过函数eps来得到;单双混合运算时,最后取单精度的数据结果。在双精度中,Inf和NaN分别表示无穷大和被零除。
- 整型浮点数间的操作函数:cast(x,'type'),将x的数据类型转化为type类型的数据
- 复数:
- 通过complex(a,b)得到复数a+bi
- 角度=弧度*180/pi
round 向最接近的整数舍入
7.数组
7-1一维数组的创建
- 直接输入法:直接通过空格、逗号和分号来分割数组元素,生成一维数组
- 步长输入法:x=a:inc:b
- 等间距线形生成方法:x=linspace(a,b,n),采用函数在a和b之间内得到n个线形采样数据点
- 等间距对数生成方法:x=logspace(a,b,n)
- 数组元素的访问:对单个元素可以通过索引访问,如x(3);对于一块数据,可以通过冒号形式访问;对于其中部分数据,可以通过构造访问序列或者向量列表来访问。
- 构造访问数组:如x(1:2:7) x([1 4 6 3 2 2])
一维数组可以是一个行向量,也可以是一列多行的向量,在定义中,如果通过“;”分隔元素,那么生成的是列向量;通过空格或者逗号分隔的元素为行向量;行和列向量之间可以通过“,”来进行相互之间的转化过程。复数则是共轭转置操作。
7-2 多维数组的创建
- 二维数组可以通过以下三种方法来创建
- 方法1:直接输入二维数组的元素,不同行之间的数据通过分号来分割,同一行中的采用逗号或者空格
- 方法2:通过Array Editor来输入二维数组
- 方法3:对于大规模的数据,通过数据表格方式进行输入,选择Import data 图标,选择写好的矩阵数据文件
- 方法4;通过其他函数生成二维数组
- 三维数组(包含行,列和页/层的概念)可以通过以下方式创建:
- 直接创建:通过一些内置函数来创建三维数组,如zeros,ones,rand,randn等,如A=zeros(3,4,2)表示三行4列,两页
- 通过直接索引的方法进行创建
- 使用内置函数reshape和repmat将二维数组转换为三维数组
- 使用cat函数将低维数组转为高维数组,AA=cat(3,X,Y,Z)表示在第三维上合并低维数组
7-3 数组的运算
数组的运算包含数组和标量之间的运算,以及数组和数组之间的运算。数组与数组之间的还包括直接运算和点运算。注意区分左除和右除。
二维数组的运算:对于矩阵的加减运算以及其他点运算,都是针对矩阵的元素进行的。
7-4 常用的标准数组
包括全0数组、全1数组、单位矩阵、随机矩阵、对角矩阵以及元素为指定常数的数组等。
7-5 低维数组的寻址和搜索
排序:在进行一维数组的排序时,默认为升序排列,如果需要降序,需要在第二个参数处以descend来代替。
例如:[As,idx]=sort(A,'ascend')
sort函数只对数组的列进行排序;如果要对行进行排序,需要为sort函数提供第二个参数2,As=sort(A,2)
子数组搜索功能可以通过find函数来搜索。
如果搜索最值,可以使用max和min函数;如果搜索的是二维数组,那么这两个函数返回每一列的最值。
8. 单元数组和结构体
单元数组(cell array)和结构体(structure)都可以将不同类型的相关数据集成到一个单一的变量中。
结构体和单元数组十分相似,区别是结构体中的数据存储并不是由数字来标示的,而是通过结构体中的名称来进行标示的。
8-1 单元数组的创建和操作
单元数组中的每一个元素称为单元(cell),单元中可以包含任何类型的Matlab数据。
单元数组的创建可以分为两种,通过直接赋值语句直接创建,即按照单元索引法和按照内容索引法。
或者通过cell函数首先为单元数组分配内存空间,然后再对每个单元进行赋值。
用花括号可以访问单元数组单元的内容,采用celldisp函数来强制显示单元数组的所有内容。
C=[A;B] 合并得到更大的单元数组
用reshape函数来改变单元数组的结构;repmat函数用于复制单元数组
8-2 结构体创建
结构体(structure)和单元数组非常相似,结构体通过字段(fields)来对元素进行索引,在访问时只需通过点号来访问数据变量。
结构体可以通过两种方法来创建,即通过直接赋值方式创建或者通过struct函数来创建。
结构体函数:
cat函数:提取结构体数据后依次排列,如center=cat(1,circle.center)
deal函数:提取多个元素的数值赋予不同的变量,或对结构体字段赋值,
[c1,c2,c3]=deal(circle.color) [circle.radius]=deal(13,27,36)
9.字符串
常见的操作函数:
10.关系和逻辑运算
Matlab对一个数组执行逻辑判断时,所有的非0数组都视为true,而0视为1;当执行关系和逻辑判断时,返回true或者false。
10-1 关系运算符
主要用于比较两个同维数的数组的大小,或者比较数组和标量的大小。~=表示不等于。
10-2逻辑运算符
10-3 关系和逻辑函数
xor(x,y) 异或操作,当x和y中,一个为真,一个为假时,函数返回true,反之,返回false
any(y) 如果x是向量,当向量中的任意一个元素不为0时,返回true;如果x 是数组,对每一列,如果有一个元素不为0,返回true
all(x)如果x是向量,当向量中的所有元素都不为0时,返回true;如果x 是数组,对每一列,如果所有元素都为0,返回true
Matlab--从入门到精通(chapter2 matlab 基础知识)的更多相关文章
- 0.Python 爬虫之Scrapy入门实践指南(Scrapy基础知识)
目录 0.0.Scrapy基础 0.1.Scrapy 框架图 0.2.Scrapy主要包括了以下组件: 0.3.Scrapy简单示例如下: 0.4.Scrapy运行流程如下: 0.5.还有什么? 0. ...
- 《Matlab实用案例》系列Matlab从入门到精通实用100例案例教程目录(持续更新)
目录 1. 专栏简介 2. 专栏地址 3. 专栏目录 1. 专栏简介 2. 专栏地址 「 刘一哥与GIS的故事 」之<Matlab使用案例> 3. 专栏目录 [MATLAB统计分析与应用1 ...
- 想入门Web安全,这些基础知识都学会了吗?
毕业季已经正式告一段落,这届毕业生都找到心仪的工作了吗? 正在实习期或者试用期的职场新人,是否在岗位上做的风生水起? 工作了一两年,从未升职加薪的菜鸟,还愿意继续原地踏步吗? 在校学生.IT从业者.毕 ...
- Oracle数据库从入门到精通 多表查询知识以及范例
视频课程:李兴华 Oracle从入门到精通视频课程 学习者:阳光罗诺 视频来源:51CTO学院 总体内容: 多表查询的意义以及基本问题. 表的连接查询 SQL:1999语法标准对多表查询的支持. 数据 ...
- Python入门方法推荐,哪些基础知识必学?
很多想入门的小伙伴还不知道Python应该怎么学,哪些知识必学,今天我们就来盘点一下. 01.入门方法推荐 总体来讲,找一本靠谱的书,由浅入深,边看边练. 网上的学习教程有很多,多到不知道如何选择.所 ...
- [WebGL入门]五,矩阵的基础知识
注:文章译自http://wgld.org/,原作者杉本雅広(doxas),文章中假设有我的额外说明.我会加上[lufy:],另外.鄙人webgl研究还不够深入,一些专业词语,假设翻译有误,欢迎大家指 ...
- Matlab 从入门到精通 Chapter11 文件读取I/O
11.1 工作空间数据读取 将工作空间的变量保存为文件,可以使用save命令. save('filename') 将文件保存在当前目录下,文件名为filename.mat save('filenam ...
- Matlab从入门到精通 Chapter5 数据可视化--
5-1 图形绘制示例 >> x2=-17:0.02:3; >> y2=1./((x2+3).^2+1)+1./((x2+9).^2+4)+5; >> subplot ...
- 大数据入门到精通11-spark dataframe 基础操作
// dataframe is the topic 一.获得基础数据.先通过rdd的方式获得数据 val ny= sc.textFile("data/new_york/")val ...
- Atom编辑器入门到精通(三) 文本编辑基础
身为编辑器,文本编辑的功能自然是放在第一位的,此节将总结常用的文本编辑的方法和技巧,掌握这些技巧以后可以极大地提高文本编辑的效率 注意此节中用到的快捷键是Mac下的,如果你用的系统是Win或者Linu ...
随机推荐
- 【摘录】JAVA内存管理-JVM垃圾收集机制
很多公司都有自己的JVM实现,被Oracle收购的sun公司开发的JVM实现名为HotSpot.这一实现是我们最常用到的. 还有哪些JVM实现呢?比较有名的有Oracle之前收购的BEA公司(就是以前 ...
- Ubuntu18.04解决鼠标移动到Gnome顶栏左上角窗口不能平铺( Activites Overview 界面),和应用程序扩展不好用问题。
在用习惯了GNOME我们知道一个很好的功能就是通过鼠标移动到Gnome顶栏左上角后所有打开的窗口就会平铺在显示器上方便我们选不同的窗口(Activites Overview 界面),苹果MAC系统也有 ...
- hdu1542 矩形面积并(线段树+离散化+扫描线)
题意: 给你n个矩形,输入每个矩形的左上角坐标和右下角坐标. 然后求矩形的总面积.(矩形可能相交). 题解: 前言: 先说说做这道题的感受: 刚看到这道题顿时就懵逼了,几何 烂的渣渣.后来从网上搜题解 ...
- Node_进阶_2
第二天 一.复习: Node.js开发服务器.数据.路由.本地关心效果,交互. Node.js实际上是极客开发出的一个小玩具,不是银弹.有着别人不具备的怪异特点: 单线程.非阻塞I/O.事件驱动. 实 ...
- [中文] 以太坊(Ethereum )白皮书
以太坊(Ethereum ):下一代智能合约和去中心化应用平台 翻译|巨蟹 .少平 译者注|中文读者可以到以太坊爱好者社区(www.ethfans.org)获取最新的以太坊信息. 当中本聪在2009年 ...
- 九、frp对外提供简单的文件访问服务
通过 static_file 插件可以对外提供一个简单的基于 HTTP 的文件访问服务.类似于http的文件索引! 服务端frps.ini配置[common]bind_addr = 0.0.0.0bi ...
- 使用tf.ConfigProto()配置Session运行参数和GPU设备指定
参考链接:https://blog.csdn.net/dcrmg/article/details/79091941 tf.ConfigProto()函数用在创建session的时候,用来对sessio ...
- linux之资料重定向
標準輸入 (stdin) :代碼為 0 ,使用 < 或 << : 標準輸出 (stdout):代碼為 1 ,使用 > 或 >> : 標準錯誤輸出(stderr):代 ...
- 变量命名规范及str类型
变量命名规范: 1.单词之间用_分开 add_num() 2.全局变量,大写 PI,NUMBER() 3.实例变量,以_开头 _example() 4.私有实例变量 __private() 5.普通函 ...
- jvm 垃圾回收概念和算法
1.概念 GC 中的垃圾,特指存在于内存中.不会再被使用的对象.垃圾回收有很多种算法,如引用计数法.复制算法.分代.分区的思想. 2.算法 1.引用计数法:对象被其他所引用时计数器加 1,而当引用失效 ...