矩阵
一.矩阵特点
矩阵是最基本的数据对象
大部分运算或命令都是针对矩阵的
不需要对矩阵的维数、大小和类型进行说明
会根据用户所输入的内容自动进行配置
矩阵:由m*n个数排列而成,简称 m*n矩阵
字符串也视为矩阵,元素是字符
二.如何建立
(1) 利用直接输入法建立矩阵
- 将矩阵的元素用方括号括起来,按矩阵行输入各元素
- 同一行的元素之间用空格或逗号分隔
- 不同行的元素之间用分号分隔
例如:
A=[1,2;3,4]
B=[1+3i 2 3;4-2i 5 6]
c='shan dong university'
c(2)
自动赋值给ans输出
(2) 利用已经建好的矩阵建立新的矩阵
- 大矩阵可以由小矩阵拼接成
- 复矩阵可以由实部矩阵和虚部矩阵拼接成
例如:
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]
所有变量在工作区展示
双击可以看元素
D=A+B*1i
(3) 利用冒号表达式和linspace函数
- 冒号表达式可以产生一个行向量,一般格式:e1:e2:e3
%e1为起始值,e2为步长,e3为终止值 - linsapce函数产生行向量。调用格式:linsapce(a,b,n)
%a为起始值,b为终止值,n为元素个数
%linspace(a,b,n)与a:(b-a)/(n-1):b等价
例如:
t=0:1:5
t=linspace(0,pi,6)
t=linspace(0,5,6)
三.如何引用
- 下标引用矩阵元素
- 矩阵元素序号引用
矩阵元素按列存储,先第一列,再第二列。例如:A(6)
序号与下标一一对应,以m*n矩阵A为例,矩阵元素A(i,j)=A( i+m\*(j-1) )
例子:
A=[1,2,3;4,5,6;7,8,9]
A(3,2)
3+3*(2-1)=6
A(6)
两个函数实现下标与序号的转换:
- sub2ind:将下标转换为序号
- ind2sub:将序号转换为下标
利用冒号表达式获得子矩阵
例如:
A(i:i+m,k:k+n)
A(i:i+m,:)
A=[1,2,3;4,5,6;7,8,9]
B=-A
C=[A B;B A]
D=C(2:4,1:6)
E=C(2:4,:)
取的是第二行到第四行,第一列到第六列的子矩阵
利用一般向量和end运算来表示矩阵下标
例如:
A=[1,2,3;4,5,6;7,8,9]
A(end)
end代表最后一个
C(2:end,1:2)
要取某些行
d=C([2,4,6],2:4)
用中括号代表要取的哪些行
利用空矩阵删除某些元素
A=[]
B=[1,2,3;4,5,6;7,8,9]
B(1,:)=[]
不单单是赋值的操作
C(:,[1,3,5])=[]
矩阵元素的引用
- 逻辑1标识法:1表示真,0表示假
用一个基于原矩阵A相对位置的逻辑矩阵B来对A进行访问,逻辑矩阵B的每一个true值表示原矩阵A相应位置的元素可以被访问
如果需要通过逻辑1标识法对矩阵进行寻访,只需要将符号条件的元素位置的标识设置为1即可