寻找矢量/矩阵操作的for循环的矢量化替换

时间:2016-10-17 23:07:51

标签: matlab vectorization

我有一个nx2矩阵M,我想从它的每一行中减去一个向量p。像:

M(1,1)=M(1,1)-p(1); M(1,2)=M(1,2)-p(2);
M(2,1)=M(2,1)-p(1); M(2,2)=M(2,2)-p(2);

等等

然后我想将修改后的M折叠为像

这样的规范的向量N
N(1)=norm(M(1,:));
N(2)=norm(M(2,:));

等等

我可以轻松编写for循环来执行此操作。是否有一种矢量化的方法可以立即执行此操作?

1 个答案:

答案 0 :(得分:0)

您可以使用bsxfun并手动计算标准:

% Subtract P
M = bsxfun(@minus, M, p);

% Calculate the norm
N = sum(M .^ 2, 2) .^ 0.5;