Extracting data from an array
Afficher commentaires plus anciens
I have an array of 69 x 1 cells. All cells are either 12 x 2 or 13 x 2 matrices. I want to make a matrix, with all second columns from the matrices in the array.
So for example:
This is my array: (I havent given names to the cells yet, but just for the example)
[y1; y2; y3; y4; y5.......]
y1 = 12 x 2 matrix y2 = 12 x 2 matrix y3 = 13 x 2 matrix y4 = 12 x 2 matrix y5 = 13 x 2 matrix
I want all second columns from y1 till y69 in a n x 69 matrix.
Thanks for the help!
2 commentaires
Some of the matrices have twelve rows, some have thirteen. How do you want their columns to be merged into one matrix: do you want to trim the longer columns, or pad the shorter ones? What value should be used for padding? Leading or trailing padding?
Royvg94
le 28 Sep 2015
Réponse acceptée
Plus de réponses (1)
Andrei Bobrov
le 28 Sep 2015
x = arrayfun(@(x)randi(56,randi([12 13]),2),(1:69)','un',0); % x - your array
n = cellfun(@(x)size(x,1),x);
nm = max(n);
m = numel(x);
out = nan(nm,numel(x));
for ii = 1:m
out(1:n(ii),ii) = x{ii}(:,2);
end
Catégories
En savoir plus sur Data Type Conversion dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!