unexpected response when trying to concatenate by row after accessing cell value
24 views (last 30 days)
Show older comments
Thomas
on 26 Nov 2024 at 11:32
I am trying to access the values in certain cells then concatenate the results together by row :
% initialise cell data for example
cells = cell(5, 1);
cells{1, 1} = [5 1];
cells{2, 1} = [4 1];
cells{3, 1} = [3 1];
cells{4, 1} = [2 1];
cells{5, 1} = [1 1];
% the code im trying to run
all_cells = [cells{1:5, 1};];
the result i get: 1x10 matrix [5,1,4,1,3,1,2,1,1,1]
what i am expecting to happen:
% my current workaround
cell_1=cells{1, 1};
cell_2=cells{2, 1};
cell_3=cells{3, 1};
cell_4=cells{4, 1};
cell_5=cells{5, 1};
y_folds = [cell_1; cell_2; cell_3; cell_4; cell_5;];
the result i expected: 5x2 matrix [5,1;4,1;3,1;2,1;1,1]
i also tried to use comma instead of semi-colon as such:
all_cells = [cells{1:5, 1},];
but i get the same result as with a semi-colon: 1x10 matrix [5,1,4,1,3,1,2,1,1,1]
0 Comments
Accepted Answer
Stephen23
on 26 Nov 2024 at 12:25
Edited: Stephen23
on 26 Nov 2024 at 12:27
The MATLAB approach is to simply call VERTCAT instead of the concatenation operator:
C = {[5,1];[4 1];[3 1];[2 1];[1 1]};
M = vertcat(C{:})
Explanation of how this works:
The trailing semi-colon or comma in your code attempts do nothing whatsoever.
0 Comments
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!