我有一个3XN
矩阵表示3D坐标列表,类似于
33 33 33 33 34 34 34 34 34 35 35
17 18 19 20 16 17 18 19 20 16 17
10 10 10 10 10 10 10 10 10 10 10
我希望将所有坐标移动一些向量v=[1 2 3]
,即将3D向量添加到矩阵的每一列。
我知道如何使用for
循环执行此操作,但如何在没有循环的情况下执行此操作?当然有办法......
答案 0 :(得分:10)
D=[33 33 33 33 34 34 34 34 34 35 35;
17 18 19 20 16 17 18 19 20 16 17;
10 10 10 10 10 10 10 10 10 10 10 ];
A=[1 2 3]';
C= bsxfun(@plus, D, A)
C =
34 34 34 34 35 35 35 35 35 36 36
19 20 21 22 18 19 20 21 22 18 19
13 13 13 13 13 13 13 13 13 13 13
答案 1 :(得分:1)
使用repmat
:
M = randn(3, N); % your 3 x N matrix
v = randn(3, 1); % your vector
r = M + repmat(v, [1 N]); % add v to every column of M