Matlab:向矩阵添加向量

时间:2011-09-22 14:25:03

标签: matlab vector matrix addition

我有一个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循环执行此操作,但如何在没有循环的情况下执行此操作?当然有办法......

2 个答案:

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