MATLAB 数值数据类型
整型
无符8位整型 0~255 函数uint8(data) 将data转无符整型 data超出范围则为127
有符8位整型 -128~127 函数int8 将数值数据转带符号8位整型
浮点型
单精度 4字节 函数single() 将数值数据转单精度
双精度 8字节 默认双精度 函数class()将数值数据转双精度
复数型
实部与虚部默认双精度 虚数单位用i或j表示
函数real() 求实部
函数imag() 求虚部
format命令:数据的输出格式 ;只影响数据输出格式,不影响存储与计算
语法 format 格式符 例如format long/short
常用数学函数
函数调用格式:函数名(函数自变量的值)
函数自变量的值为矩阵变量
1、三角函数 例如:sin(x):x以弧度为单位 ; sind(x):x以角度为单位
2、abs函数 求实数的绝对值、复数的mo、字符串的ASCII值
3、取整函数 fix(取小数的整数部分), floor(向下取整), ceil(向上取整), round(四舍五入)
4、函数rem(m,n) m/n的余数
5、y=isprime(x) x矩阵中元素是素数的对应矩阵y元素相应值为1,否则为0
6、sqrt(x) 求x的平方;exp(x) 求e的x次方
变量
1、预定义变量 使用时要避免对其重新赋值
ans默认复制变量
i和j代表虚数单位 例如:如果i在循环中使用,作为循环变量,则i不能代表虚数单位
pi代表圆周率
NaN代表非数
2、who与whos命令
3、内存变量文件
save命令:创建内存变量文件 save mydata x 将变量x装入mydata文件
load命令:装入内存变量文件 load mydata 装入后可以直接使用变量x
matlab矩阵的表示
1、 矩阵的建立
a) 利用直接输入建立矩阵:将矩阵元素用中括号括起来,同一行元素用逗号或空格分隔,不同行用分号隔开;
b) 利用已建好的矩阵建立更大的矩阵 类似分块矩阵
c) 可用实部矩阵B和虚部矩阵C构成复数矩阵A 例:A=B+i*C;
d) 冒号表达式,产生行向量,e1:e2:e3 e1为初始值,e2为步长,e3为终止值,e2省略,默认e2为1;
e) linspace(a, b, n) 函数产生向量,a表示第一个元素,b表示 最后一个元素,n表示元素总个数
2、 (特殊矩阵)结构矩阵和单元矩阵的建立
结构矩阵
格式:结构矩阵元素.成员名=表达
单元矩阵
每个元素的数据类型不同,建立单元矩阵和一般矩阵相似,只是单元矩阵元元素用大括号表示。
Matlab矩阵元素的引用
1、 通过下标引用矩阵的元素
例A(3,2) 表示第3行第2列的元素 A(3,2)=10 将第3行第2列的元素数值改为10;
例A=[0,1;0,3] A(2,3)=10 则A=[ 0, 1 ,0 ;0, 3, 10 ] 下标超过A的维度,对该下标对应元素赋值时,A将自动扩充
2、 通过序号来引用
A为m x n的矩阵;元素A(I,j)对应序号D=(j-1)*m+i
sub2ind函数:将矩阵中指定元素的行、列下标转换成存储的序号。
调用格式:D=sub2ind(S,I,J) S表示行数和列数组成的向量 通常用size()函数获取 ,I表示要转换的行下标(I可以是矩阵),J表示要转换的列下标(J可为矩阵,则D也为对应矩阵);
Ind2sub函数:将矩阵元素的序号转换成对应下标.
调用格式 [I,J]=ind2sub( S, D) S表示行数和列数组成的向量, D是序号(矩阵)
3、 利用冒号表达式获得子矩阵
子矩阵是指:由矩阵中的一部分元素构成的矩阵
A ( i , :0) 第i行的全部元素
A( : , j ) 第j列的全部元素
A( i: i+m, j: j+n) 第i~i+m行内且在j~j+n列内的所有元素
A( i:i+m , : ) 第i~i+m行的全部函数
end运算符 例如A( [ 1,4 ],3:end ) 表示引用矩阵第1、4行的第3~最后一列的元素
4、 删除矩阵元素
例A( : ,[1,4 ] )=[] 删除第一列和第四列
5、 改变矩阵的形状
reshape(A,m,n):在矩阵总元素保持不变的情况下,将矩阵重排成mxn的二维矩阵
A表示要改变的矩阵,改变成m行n列
注意:reshape函数只是改变原矩阵的行数和列数,但不改变原矩阵元素个数以及存储顺序。
特殊表示 A(:) 将每一列元素堆叠起来形成一个列向量
Matlab的基本运算
1、 算术运算
a) 基本算术运算
加减运算 同型矩阵之间的运算,标量与矩阵运算
乘法运算 矩阵要可乘
除法运算 分右除/、左除\(一般两者不等价) 如果A是非奇异方阵,B/A等效B*inv(A) ;A\B等效于inv(A)*B;一般B/A不等于B\A (标量左除右除相同)
b) 点运算(注意理解)
点运算符:.* 和 ./ 和 .\ 和 .^ 同型矩阵对应元素做相关运算
2、关系运算符
<、<= 、> 、>= 、==、~=(不等于) 关系结果真为1,假为0
注:两个同型矩阵比较,结果也是0,1组成的同型矩阵;
标量与一个矩阵比较,则是标量与矩阵每个元素逐个比较;结果也是0,1组成的同型矩阵;
3、 逻辑运算符
&,|,~
Matlab字符串的处理
导论:基本数据类型包括:数值型数据,字符串型数据
1、 字符串的表示:字符串是用单引号括起来的字符序列,字符串将被看作行向量
注:字符串中如果有单引号则要用两个单引号表示
2、 建立多行字符串,形成字符串矩阵。
例:x=[ ‘ I’’am hadoop ’, ’yi i’ ; ‘nihao’ ,’ hello ’ ]
3、 字符串的操作
a) 字符串的执行:格式 y=eval(s) 其中将字符串S的作为matlab命令来执行得到的结果赋值给y
b) 字符串与数值之间的转换:
i. abs函数和double函数可以用来获取字符串矩阵所对应的ASCII码数值矩阵
ii. char函数可以把ASCII码矩阵转为字符串矩阵
c)字符串的比较
i. 利用关系运算符比较 例:‘www0’ >=’W123’ ans=[1 1 1 0]
ii. 利用函数比较:
(1)strcmp(s1,s2) s1==s2返回1 否则返回0
(2)strncmp(s1,s2,n) 比较前n个字符相等返回1,否则返回0
(3)strcmpi(s1,s2) 忽略大小写相等返回1,否则返回0
(4)strncmpi(s1,s2,n) 忽略大小写比较前n个字符相等返回1,否返回0
d)字符串的查找与替换
i. findstr(s1,s2):返回短字符串在长字符串中的开始位置
ii. strrep(s1s2s,s3):将字符串s1中的所有子字符串s2替换为字符串s3