例如:用a中每一行数除以x中相对应的每一个数
x=[5 10 6 8 16 6 8 8 22 11];
a=[4 4 4 5 4 4 4 4 3 4
6 8 6 2 6 8 8 6 8 6
4 4 4 4 6 4 4 4 6 4
4 6 6 4 6 6 6 4 7 4
10 14 14 10 12 12 12 10 14 12
3 5 5 3 6 3 3 4 5 4
4 6 7 4 4 4 4 4 6 6
4 6 6 6 5 6 5 5 7 6
13 16 19 16 13 13 10 13 16 13
8 9 10 8 8 7 8 8 9 8
];
%a的第i行除以x的第i个数
xa=repmat(x',[1 10]);
a=a./xa;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
函数repmat用法
B =repmat(A,m,n)
B = repmat(A,[mn])
B = repmat(A,[m np...])
这是一个处理大矩阵且内容有重复时使用,其功能是以A的内容堆叠在(MxN)的矩阵B中,B矩阵的大小由MxN及A矩阵的内容决定,如果A是一个3x4x5的矩阵,有B = repmat(A,2,3)则最后的矩阵是6x12x5。
例如:
B = [1 2 3;4 5 6;7 8 9]
B(:,1) % 取B矩阵的第1列
repmat(B(:,1),1,5) % 将B(:,1)
复制成'1×5'的矩阵
运算结果:
ans =
1 1 1 1 1
4 4 4 4 4
7 7 7 7 7
repmat(B(:,1),2,5) % 将B(:,1)
复制成'2×5'的矩阵
ans =
1 1 1 1 1
4 4 4 4 4
7 7 7 7 7
1 1 1 1 1
4 4 4 4 4
7 7 7 7 7
其结果变为6*5。A也可以置放文字串,如:
>>C=repmat(' Long live the king!', 2,2)
运算结果:
C =
Long live the king! Long live the king!
Long live the king! Long live the king!
也可置放其他的:
>> D=repmat(NaN,2,5)
运算结果:
D =
NaN NaN NaN NaN NaN
NaN NaN NaN NaN NaN