MATLAB矩阵

1.矩阵建立

(1)常规表示:eg.  A=[1,2,3:4,5,6:7,8,9]  //此处表示三行三列,同一行用逗号或者空格分隔,不同行元素用分号分隔

(2)矩阵的拼接 

eg.  A=[1,2,3:4,5,6:7,8,9]; B=[-1,-2,-3;-4,-5,-6;-7,-8,-9];C=[A,B;B,A]

复数矩阵 C=A+i*B;

2.冒号表达式

e1:e2:e3  //e1为初始值,e2为步长,若省略则步长为一,e3为终止值

格式:linspace(a,b,n)  //a为第一个元素,b为最后一个元素,n元素总数,若省略则自动产生100个元素

3.结构矩阵和单元矩阵

结构矩阵里的每个元素就是结构数据类型

格式为:结构矩阵.成员名=表达式

扫描二维码关注公众号,回复: 3729565 查看本文章

eg. a(1).x1=10;a(1).x2='liu';a(1).x3=[11,12;34,78];

单元矩阵 eg.b={10,‘liu’,[11,12;34,78];12,'wang',[34,91;27,578];...

14,'cai',[13,890;67,231]}

4.矩阵的引用

A(2,3)=100; //biaoshiA矩阵第2行第3列被赋值为100

(1)通过下标来引用

A=[1,2,3;4,5,6];

A(4,5)=10;  若给出的行下标或列下标大于原来矩阵的行数和列数,矩阵将扩展,没有赋值的元素置为0

(2)通过序号来引用

在MATLAB中,矩阵元素按列存储,先存储第一列元素,再存储第二列,第三列......

矩阵元素的序号就是矩阵元素在内存中的排列顺序,序号与下标是一一对应的,m*n矩阵A,矩阵元素A(i,j)的序号为(j-1)*m+i

sub2ind函数:将矩阵中指定元素的行,列下列转换成存储的序号。调用格式为:D=sub2ind(S,I,J) //S行数和列数组成的向量,I转换矩阵的行下标,J转换矩阵的列下标,D为序号

A=[1:3;4:6]

eg. D=sub2ind(size(A),[1,2;2,2],[1,1;3,2])    D=1 2;6 4

ind2sub函数:将矩阵元素的序号转换为对应的下标,其调用格式为:[I,J]=ind2sub(S,D) //I行下标,J列下标,S行数和列数组成的向量,D序号

[I,J]=ind2sub([3,3],[1,3,5])

I=1 3 2    J=1 1 2

5.利用冒号表达式获得子矩阵

A(i,:)   第i行的全部元素    A(:,j)  第j列的全部元素    A(i:i+m,k:k+m)  第i行到第i+m行且在第j行到j+m列的所有元素

A(i:i+m,:)   第i行到第i+m行的所有元素

end运算符:表示某一维的末尾元素的下标

A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20]

A(end,:)        ans=16  17  18  19  20

A([1,4],3:end)   ans=3 4 5;18 19 20

6.利用空矩阵删除矩阵元素

空矩阵是指没有任何元素的矩阵

A(:,[2,4])   表示删除A矩阵中第2,4列的所有元素

7.改变矩阵的形状

reshape(A,m,n):在矩阵总元素保持不变的情况下,将矩阵A重新排成m*n的二维矩阵

注意:reshape函数只改变原矩阵的行数和列数,但不改变原矩阵元素个数及存储顺序

A(:):将每一列元素堆叠起来,成为一个列向量。

8.矩阵的基本运算

(1)+,-,*,/,\,^

+,-运算需两矩阵同型,*运算需前一个矩阵的列数等于后一个矩阵的行数,如果A是非奇异方阵,则B/A等效于B*inv(A),A\B等效于inv(A)*B

乘方运算可表示为A^x,A需为方阵,x为标量

(2)点运算:.*,./,.\,.^

两矩阵进行点运算就是指它们相对应元素进行相关运算,要求两矩阵同型

(3)关系运算 <,<=,>,>=,==,~= 若关系成立,表达式结果为1,否则为0

(4)逻辑运算 &,|,~

9.字符串处理

(1)字符串表示:单引号括起来的字符数列 eg xm=‘this is a book’   xm(1,4)   ans=this

建立多行字符串,形成字符串矩阵  ch=['hello world';'123456']  ch(2,3)  ans=3

字符串倒置:revch=ch(end:-1:1)

(2)字符串的操作

i.字符串的执行     格式:evals(s) s为字符串

ii.字符串与数值之间的转换 

abs和double函数均可用来获取字符串矩阵所对应的ASCII码数值矩阵

char函数可把ASCII码矩阵转换为字符串矩阵

iii.字符串的比较:利用关系运算符或者字符串比较函数

比较函数:strcmp(str1,str2):用来比较两个字符串str1,str2是否相等,若相等则返回1,否则返回0

strncmp(str1,str2,n):用来比较两个字符串str1,str2前n个字符是否相等,若相等则返回1,否则返回0

strcmpi(str1,str2):在忽略字母大小写前提下,比较两个字符串str1,str2是否相等,若相等则返回1,否则返回0

strcnmpi(str1,str2,n):在忽略字母大小写前提下,比较两个字符串str1,str2前n个字符是否相等,若相等则返回1,否则返回0

vi.字符串的查找与替换

findstr(str1,str2):返回短字符串在长字符串中的开始位置

strrep(str1,str2,str3):将字符串str1中的所有子字符串str2替换为字符串str3

猜你喜欢

转载自blog.csdn.net/weixin_42107106/article/details/82807954