repmat函数主要是用于快速的产生一个大的矩阵,它的用法一般有下面几种:
矩阵B是矩阵A的复制品,其中B的维度为[size(A,1)*M, size(A,2)*N]。如果你写成repmat(A,[M,N])也是可以的;如果你写成repmat(A,N),那么它等价于repmat(A,N,N)或者repmat(A,[N,N])。
eg: repmat(magic(2),2)
>> repmat(magic(2),2)
ans =
1 3 1 3
4 2 4 2
1 3 1 3
4 2 4 2
eg: repmat(magic(2),2,2)
>> repmat(magic(2),2,2)
ans =
1 3 1 3
4 2 4 2
1 3 1 3
4 2 4 2
eg: repmat(magic(2),1,3)
>> repmat(magic(2),1,3)
ans =
1 3 1 3 1 3
4 2 4 2 4 2
当然,它不仅对矩阵能用,对单变量与向量也适用。如:
eg: repmat(uint8(5),2,3)
>> repmat(uint8(5),2,3)
ans =
2×3 uint8 矩阵
5 5 5
5 5 5
ones的作用是产生全1矩阵,ones(N)是产生一个N*N的全1矩阵;ones(M,N)产生一个M*N的矩阵
>> ones(2)
ans =
1 1
1 1
>> ones(2,5)
ans =
1 1 1 1 1
1 1 1 1 1
创建一个全零的矩阵
eg:二维的数组【即矩阵】
>> zeros(3)
ans =
0 0 0
0 0 0
0 0 0
>> zeros(3,5)
ans =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
eg:三维数组
>> zeros(5,3,2)
ans(:,:,1) =
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
ans(:,:,2) =
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
用来做乘积用。
B = prod(A)------将A矩阵不同维的元素的乘积返回到矩阵B。
● 如果A是向量,prod(A)返回A向量的乘积。
● 如果A是矩阵,prod(A)将A看作列向量,返回每一列元素的乘积并组成一个行向量B。
>> A = [1,2,3]
A =
1 2 3
>> prod(A)
ans =
6
============================================
>> A = [1,2,3;2,3,4;3,4,5]
A =
1 2 3
2 3 4
3 4 5
>> prod(A)
ans =
6 24 60
============================================
>> prod(1:3)
ans =
6