矩阵元素的引用方式:
①下标引用 A(3,2)=200
②序号引用 A(3)=200 先存储第一列,再第二列,...
#序号与下标一一对应,以m*n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i
>> A=[1:3;4:6]
A =
1 2 3
4 5 6
>> A(3)
ans =
2
>> A=[1:3;4:6]
A =
1 2 3
4 5 6
>> D=sub2ind(size(A),[1,2;2,2],[1,1;3,2])
D =
1 2
6 4
>> [I,J]=ind2sub([3,3],[1,3,5])
I =
1 3 2
J =
1 1 2
利用冒号表达式获得子矩阵
A(i:i+m, k:k+m) 第i~i+m行内且在第k~k+m列中的所有元素
end运算符:表示某一维的末尾元素下标
>> A=[1:5;6:10;11:15]
A =
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
>> A(1:2,:)
ans =
1 2 3 4 5
6 7 8 9 10
>> A(2:3,1:2:5)
ans =
6 8 10
11 13 15
>> clear
>> A=[1:5;6:10;11:15;16:20];
>> A(end,:)
ans =
16 17 18 19 20
>> A([1,4],3:end)
ans =
3 4 5
18 19 20
利用空矩阵删除矩阵元素
>> x=[]
x =
[]
>> A=[1:5;6:10;11:15;16:20]
A =
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
>> A(:,[2,4])=[]
A =
1 3 5
6 8 10
11 13 15
16 18 20
矩阵索引不能超出删除范围
>> A=[1:5;6:10;11:15;16:20];
>> A(:,[2,7])=[]
矩阵索引超出删除范围。
改变矩阵的形状
>> x=[1:12];
>> y=reshape(x,3,4)
y =
1 4 7 10
2 5 8 11
3 6 9 12
>> a=[1:13];
>> b=reshape(a,3,4)
错误使用 reshape
元素数不能更改。请使用 [] 作为大小输入之一,以自动计算该维
度的适当大小。
A(:) :将矩阵A的每一列元素堆叠起来,成为一个列向量
>> z=y(:)
z =
1
2
3
4
5
6
7
8
9
10
11
12
isempty函数判断是否为空矩阵
size函数确定矩阵每一维的大小
>> x=[1:4;4,3,5,8]
x =
1 2 3 4
4 3 5 8
>> x1=x(2:1)
x1 =
空的 1×0 double 行向量
>> x2=[]
x2 =
[]
>> x3=2:1
x3 =
空的 1×0 double 行向量
>> [isempty(x),isempty(x1),isempty(x2),isempty(x3)]
ans =
1×4 logical 数组
0 1 1 1
>> [size(x),size(x1),size(x2),size(x3)]
ans =
2 4 1 0 0 0 1 0
x的倒数第二个元素用end-1表示
>> y=x(end-1)
y =
4
>> x
x =
1 2 3 4
4 3 5 8