我试图划分Matrix的每个元素" A"与" B"的每个元素。 我想制作一个4" C"的新矩阵。
A=[5 6 9 1; 3 8 9 5; 5 4 2 0;7 8 2 1]
B=[-0.1125,-0.0847,-0.0569,-0.0292]
C = A ./ B
但是我收到错误
在作业A(I)= B中,B和I中的元素数必须是 相同。
我如何解决这个问题?
答案 0 :(得分:1)
试试这个
C = A./repmat(B,size(A,1),1);
使用@ SHAI的答案,因为它更快。这是一些统计数据
n = 100;
k = 100;
A = randi(1000,n,n);
B = randi(1000,1,n);
#mine method
tic;
for i = 1:k
C = A./repmat(B,size(A,1),1);
end
mine = toc
mine =
1.2330 seconds
#Shai's method
tic;
for i =1:k
C = bsxfun(@rdivide, A, B );
end
shai = toc
shai =
0.1085 seconds
如果你给我一般尺寸,我可以给你一个更一般的答案
答案 1 :(得分:1)
对于此类操作,最好使用bsxfun
C = bsxfun(@rdivide, A, B );