一矩阵切片以及基本函数
>> A = [1,2,3;4,5,6;7,8,9]
A =
1 2 3
4 5 6
7 8 9
>> A(2,3) %输出第二行第三列的值
ans =
6
>> A(:,3) %输出第三列的值
ans =
3
6
9
>> A(2,:) %输出第二行的值
ans =
4 5 6
>> A(end,end) %行列都是最后一个的值
ans =
9
>> A(end,end -2) %输出行是最后一行,列是end列减去2对应的列
ans =
7
>> A(end,end: -2:1) %输出最后一行,且列是倒数第一列和以-2为步长,到第一列。
ans =
9 7
>> A(2:end,end:-2:1) %输出第二行到最后一行对应的列是:倒数第一列和以-2为步长,到第一列。
ans =
6 4
9 7
>> E = A([1 3],[2 3]) %A([a b],[c d]):在A中选出
(行a,列c),(行a,列d),(行b,列c),(行b,列d)的元素
E =
2 3
8 9
>> V = A(:) %把A中的元素(以逐列的方式)排列成一个列向量的形式
V =
1
4
7
2
5
8
3
6
9
>> S = sum(A(:)) %求矩阵A的是所有元素之和
S =
45
>> S2 = sum(A) %按(每一列的形似)求出矩阵A的和
S2 =
12 15 18
>> S3 = sum(sum(A)) %跟S1等价
S3 =
45
>> V2 = A(end:-1:1,:) %从最后一行开始,以-1为步长到第一行,对应的列不发生改变 也可以看作:%一幅图像垂直翻转的结果
V2 =
7 8 9
4 5 6
1 2 3
>> size(A) %求矩阵A的维数大小
ans =
3 3
matlab中Max:
Matlab中max函数在矩阵中求函数大小的实例如下:
C = max(A)
返回一个数组各不同维中的最大元素。
如果A是一个向量,max(A)返回A中的最大元素。
如果A是一个矩阵,max(A)将A的每一列作为一个向量,返回一行向量包含了每一列的最大元素。
C = max(A,B)
返回一个和A和B同大小的数组,其中的元素是从A或B中取出的最大元素。
C = max(A,[],dim)
返回A中有dim指定的维数范围中的最大值。
[C,I] = max(...)
找到A中那些最大值的索引位置,将他们放在向量I中返回。如果这里有多个相同最大值时,返回的将是第一个的索引。
求矩阵的最大值和最小值
总结:
求矩阵A的最大值的函数有3种调用格式,分别是:
(1) max(A):返回一个行向量,向量的第i个元素是矩阵A的第i列上的最大值。
(2) [Y,U]=max(A):返回行向量Y和U,Y向量记录A的每列的最大值,U向量记录每列最大值的行号。
(3) max(A,[],dim):dim取1或2。dim取1时,该函数和max(A)完全相同;dim取2时,该函数返回一个列向量,其第i个元素是A矩阵的第i行上的最大值。
求最小值的函数是min,其用法和max完全相同。
二常见的标准数组
1、zeros(M,N) 大小为MxN的double类型矩阵,元素均为0
2、ones(M,N) 大小为MxN的double类型矩阵,元素均为1
3、true(M,N) 大小为MxN的logical类型矩阵,元素为1
4、false(M,N) 大小为MxN的logical类型矩阵,元素为0
5、magic(M) 大小为MxM的“魔术方阵”,每一行、列、对角线元素之和均相等
6、rand(M,N) 大小为MxN的矩阵,元素为区间[0,1]均匀分布的随机数
7、randn(M,N) 大小为MxN的矩阵,元素为服从标准正态分布的随机数