How do you vertically concatenate the rows of a cell array consisting of vectors of numbers?
27 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
L'O.G.
am 30 Mär. 2022
Kommentiert: Simon Chan
am 30 Mär. 2022
I want to vertically concatenate the elements of a cell array so that, for example, an array that is 3 x 9 becomes 1 x 9. How do I do that? The following concatenates everything into one dimension, which isn't what I want:
vertcat(cellarray{:});
2 Kommentare
the cyclist
am 30 Mär. 2022
What you want to do is not clear to me. Can you upload the cell array (using the paperclip icon in the INSERT section of the toolbar), or perhaps just write code here to define an smaller (like 3x2) input, and what you expect the output to be?
The best method will likely depend on whether the cell elements are numeric, strings, character arrays, etc.
Akzeptierte Antwort
per isakson
am 30 Mär. 2022
Example
m = magic(3);
m = [m,m,m];
cac = num2cell(m); % sample data
arrayfun( @(ix) vertcat(cac{:,ix}), [1:9], 'uni',false )
Is this what you look for?
1 Kommentar
Weitere Antworten (2)
Simon Chan
am 30 Mär. 2022
Tru the following:
cellfun(@(x) cell2mat(x),num2cell(a,1),'uni',0)
2 Kommentare
Walter Roberson
am 30 Mär. 2022
Output = arrayfun(@(ColIdx) vertcat(YourCell{:,ColIdx}), 1:size(YourCell,2), 'uniform', 0);
0 Kommentare
Siehe auch
Kategorien
Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!