注:2 ~ 6节为数值型数据;第7节为字符型数据。
一、matlab系统环境
1、下图是命令行窗口,很简单。
注意的是…表示续行符,以在下一行接着上一行输入命令。
2、你的操作都在当前文件夹窗口里面文件夹。当前文件夹窗口为下图圆圈所圈窗口。
注意的是cd的地址格式:cd e:\work (假设e盘下的work文件夹)
3、注意工作区窗口和命令行窗口的关系。
注意的是:在工作区窗口可以对变量进行保存、编辑、删除操作。
4、matlab的搜索路径
也就是说:
(1)如果变量sin与内部函数(如sin())同名,那么代表的是变量。尽量不要二者同名。
(2)如果你想要执行M文件,如果当前文件夹下和文件搜索路径文件夹下都有名为M的文件,则先搜索当前文件夹。
设置文件搜索路径的方法:
二、MATLAB数值数据
1、MATLAB的数值数据类型,是根据内存单元进行范围划分的,分为:
整型、浮点型、复数型
2、整型
按字节数划分
整型中的、有无符号之间的、转换:
3、浮点型
matlab默认数值数据为浮点型
class()查看数据类型
matlab默认数值数据为浮点型
4、复型
5、数值数据输出格式
注意format仅影响的是输出数据的格式
注:第二个50/3是默认格式,结果为short型,因此小数位为4位。
6、常用的数学函数
例子如下图:
接着看常用函数的应用
注:x=1:100表示1到100的数。find()把为1的k的序号保存到向量k1。p把x(k1)中序号为k1的序号给输出。
二、变量与赋值
变量名只能以字母开头。
matlab区分变量名的大小写。
标准函数名和命令名一般用小写字母。
举例:
预定义变量,我们在使用时尽量不要对预定义变量进行赋值(比如你在以前写程序时常把i作为循环变量是吧)。
注意:ans是你只输入一个表达式,那么结果就默认给了ans。
NaN非数,比如,x坐标是0-20,你只想要0-10,那么把11-20设为NaN就可以了。
内存变量文件的作用是,把如果你想让一些变量永久的保存下来方便以后使用,那你可以把变量写入.mat文件。
对下图的解释:
save mydata a x意思是把变量a和x存到mydata.mat文件。
下次打开matlab时,如果用到a和x变量,你可以执行load mydata
四、MATLAB矩阵的表示
1、矩阵建立
方法一
方法二
方法三
2、行向量建立
方法一
方法二
3、结构矩阵和单元矩阵
先看结构矩阵,结构矩阵的每个元素是同一种类型的,但是每一个元素再往下一级却是不同类型的数据。
你可以想想有三个学生构成一个矩阵,每个学生分别有自己的学号、姓名、成绩。如下图举例(注意a(1)、a(2)、a(3)为同一类型)。
我们需要为结构矩阵的每个成员赋值
再来看单元矩阵
其和结构矩阵不同之处在于,其元素直接是由不同类型的数据组成的。 对于单元矩阵并注意:把所有元素用大括号括起来。
五、矩阵元素的引用
1、通过下标引用,如下图。
值得注意的是,比如下图A(4,5)超出了A矩阵的范围,那么Matlab会自动扩展矩阵范围,如下图。
2、通过序号引用。注:这里的序号不是(行号,列号),而是:
A(1)、A(2)、A(3)、A(4)、A(5)、A(6)分别表示1、4、2、5、3、6.
也就是说从第一列从上往下排序,以此类推。
上面两用引用只是表示形式不一样。而这二者是可以转换的:
注:下图中的S可以通过size()获得
转换举例如下:
注:size(A)表示矩阵A的向量,其包含两个元素,分别是行数2和列数3。
对此举例:
下图:序号1、3、5的坐标为(1,1)、(3,1)、(2,2)
[3、3]代表3行3列的矩阵
接下来看子矩阵:
举例:
接下来矩阵的删除方法:
接下来是改变矩阵的形状(行和列数):
下图:
注意,存储顺序是和序号排序的顺序一样的,从第列竖着往下数,依此类推。
接下来看向量堆叠(可认为是向量行该改变的特殊一种):
六、MATLAB基本运算
包括算术运算、关系运算和逻辑运算
1、算术运算
加法运算
(同型指的是行和列的维数分别相同)
乘法:
除法:
注:
(1)奇异矩阵是bai线性代数的概念du,就是该矩阵的秩不是满秩。首先,看这个zhi矩阵是不是dao方阵(即行数和列数相等的矩阵。若行数和列数不相等,那就谈不上奇异矩阵和非奇异矩阵)。
然后,再看此矩阵的行列式|A|是否等于0,若等于0,称矩阵A为奇异矩阵;若不等于0,称矩阵A为非奇异矩阵。 同时,由|A|≠0可知矩阵A可逆,这样可以得出另外一个重要结论:可逆矩阵就是非奇异矩阵,非奇异矩阵也是可逆矩阵。 如果A为奇异矩阵,则AX=0有无穷解,AX=b有无穷解或者无解。如果A为非奇异矩阵,则AX=0有且只有唯一零解,AX=b有唯一解。
(2)非奇异矩阵:
若n阶方阵A的行列式不为零,即 |A|≠0,则称A为非奇异矩阵或满秩矩阵,否则称A为奇异矩阵或降秩矩阵。
对于矩阵来说左除和右除不一样,而对于标量来说左除和右除具有相同的结果值。如下所示。
关于矩阵的乘方:
你要是不懂矩阵的n次方如何运算,请看李永乐老师讲的方法: https://zhidao.baidu.com/question/942304123602317652.html
好,接下来将MATLAB特有的点运算:
下面举例,注意点运算和算术运算的区别
2、下面讲关系运算符:
举例:
下图中P矩阵为1的位置即A矩阵为偶数的元素位置
3、逻辑运算
(注意这里与C语言的区别:
C的逻辑运算符是! && ||
Matlab的逻辑运算符是~ & |
C的~ & |分别代表按位取反、按位与、按位或)。
看个例子:
七、字符串处理
注意:咱们前几节讲的都是数值型数据,接下来讲字符型数据
字符可以用一个向量表示:
下面看一个例子:
注:ch(end????1)是冒号表达式,表示:从end最后开始取,步长为-1,取到第一个数
‘a’ - ‘A’ 为a的ASCII减去A的ASCII,即32。
接下来看字符串的操作
y = eval(m)表示把一个字符向量赋值给一个变量y
方法一:利用关系运算符:
注:字符串比较是按照ASCII码
方法二:利用字符串比较函数:
举例:
接下来看字符串的查找与替换函数:
举例:
注:3、6表示is的开始位置
本章至此完。
|
请发表评论