Append rows at the end of matrix for loop
14 views (last 30 days)
Show older comments
Hello,
I need some help with a for loop. I have matrix A (5x2) and matrix B (3x2). (See image) I want to have 3 different combinations (3 new matrices size 6x2) and for each combination add one row from matrix B at the end of matrix A. How can I approach this?
1 Comment
Rik
on 24 Jan 2021
Why do you think your question is not clear? Why not improve it instead of flagging it?
Answers (2)
Robert Rasche
on 7 Jan 2021
It depends on the format/order in which the new matrices shall be output. Do you want them as a collection (cell) or one after another?
In any case, it should be pretty simple, because you just have iterate through the height-dimension of B:
C = cell(size(B, 1), 1); % in case a collection is needed (*)
for i in 1:size(B, 1)
M = [A; B(i, :)];
C{i} = M; % (*)
end
or something.
2 Comments
Robert Rasche
on 8 Jan 2021
This is what that code will do and it will also work with different sizes - as long as A and B have the same number of columns of course.
The crucial part in both Jan's and my answer is where it says
= [A; B(i,:)];
- snip out a part of B, the i-th line (via ...(i, :)) and then
- stich it to your A by vertical concatenation (via [... ; ...])
If you want there to always be 3 result matrices instead of as many as B has rows, then the loop bounds and snipping-part would have to be ajusted, but i don't think it is what you want.
See Also
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!