【发布时间】:2011-08-23 12:01:42
【问题描述】:
可能的重复:
How to subtract a vector from each row of a matrix?
How can I divide each row of a matrix by a fixed row?
我有 M 行 4 列的矩阵 (M1)。我有另一个 1 行 4 列的数组(M2)。我想用 M2 中的相应列元素减去 M1 中的每个元素。换句话说,M1 的每一列都需要被 M2 中相同列位置的标量减去。我可以调用repmat(M2,M,1),它会创建一个大小为 MxN 的新矩阵,其中列中的每个元素都是相同的,然后逐个元素地进行减法:
M2new = repmat(M2,M,1)
final = M1 - M2new
但是,这是两行代码,并在内存中创建了一个新元素。执行此操作的最快且内存占用最少的方式是什么?
【问题讨论】:
-
Duplicate: How to subtract a vector from each row of a matrix?... 这又是这些的副本(使用不同的算术运算):How do I divide matrix elements by column sums in MATLAB?, How can I divide each row of a matrix by a fixed row?... 似乎是一个非常普遍的问题。 ;)
标签: matlab memory subtraction