开发者

Matlab: add vector to matrix

开发者 https://www.devze.com 2023-04-06 22:32 出处:网络
I have a 3XN matrix representing a list of 3D coordinates,something like 3333333334343434343535 1718192016171819201617

I have a 3XN matrix representing a list of 3D coordinates,something like

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 

I want to shift all coordinates by some vector v=[1 2 3], that is add the 3D vector to each column of the matrix.

I know how to do that with a for loop, but how can I do it without a loop?开发者_如何学Python Surely there's a way...


you mean like this?

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


Use 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
0

精彩评论

暂无评论...
验证码 换一张
取 消