MATLAB Answers

concatenate arrays after performing addition

1 ビュー (過去 30 日間)
Neil Barker
Neil Barker 2019 年 10 月 15 日
回答済み: Jos (10584) 2019 年 10 月 15 日
I'm trying to add all the elements of A with element 1 of B. then do it again with element 2 etc. I'd like to concatinate the four 3x3 arrays into one array D (3x12). But i'm getting error messages.
This test code does what i want with array C, but i'm struggling getting all the previous FOR loops of C and the concatenation
A = [1,2,3;4,5,6;7,8,9];
B = [2,3,4,5];
C = zeros(3);
D = zeros(3,12);
for i = 1:numel(B)
C = A + B(i)
end
Thanks for any assistance you give,
Neil

  0 件のコメント

サインインしてコメントする。

採用された回答

Andrei Bobrov
Andrei Bobrov 2019 年 10 月 15 日
A = [1,2,3;4,5,6;7,8,9];
B = [2,3,4,5];
D = reshape(permute(A + reshape(B,1,1,[]),[2,1,3]),size(A,2),[])';

  1 件のコメント

Neil Barker
Neil Barker 2019 年 10 月 15 日
Thanks for your answer Andrei. I'll go through it now. My actual code will be A = NxN and
B = 1xN. so hopefully i'll be able to make a general case for D.
thanks again,
Neil

サインインしてコメントする。

その他の回答 (1 件)

Jos (10584)
Jos (10584) 2019 年 10 月 15 日
A little simpler than all those permutes and reshapes:
A = [1 2 3 ; 4 5 6 ; 7 8 9] ;
B = [2 3 4 5] ;
C = repmat(A, numel(B), 1) + repelem(B(:), size(A,1), size(A,2))

  0 件のコメント

サインインしてコメントする。

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by