具有已定义数组的矩阵除法

时间:2014-06-26 14:33:01

标签: matlab

我试图划分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中的元素数必须是   相同。

我如何解决这个问题?

2 个答案:

答案 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)

对于此类操作,最好使用

C = bsxfun(@rdivide, A, B );