6

我有一个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循环来做到这一点,但是没有循环我怎么能做到呢?肯定有办法...

4

2 回答 2

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
于 2011-09-22T14:37:20.160 回答
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
于 2011-09-22T14:32:28.730 回答