How to collect information of different cells in a column vector

1 visualizzazione (ultimi 30 giorni)
I have a cell array x{n,j}
<3x8 double>
<8x9 double>
<5x9 double>
<2x8 double>
<8x9 double>
<5x9 double>
<2x8 double>
<8x9 double>
<4x9 double>
<2x8 double>
<8x9 double>
<3x9 double>
The information stored in various cells is to be compiled in one column vector
n is number of iterations. a=5
This code is not working
I want to collect first column of each cell into one vector
n=1:a
for j=1:columns;
[row,col]=size([x{n,j}]);
p=x{n,j}(2:row,1);
end
  1 Commento
Jan
Jan il 25 Gen 2017
Please post the input in valid Matlab syntax. I cannot guess reliably, what "array x{n,j} double double double ..." exactly means. What is the purpose of the variable "a"? You code overwrites "p" in each iteration, but I cannot guess, what you want to get instead.

Accedi per commentare.

Risposte (2)

Walter Roberson
Walter Roberson il 25 Gen 2017
temp = cellfun(@(M) M(:,1), 'Uniform', 0);
output = vertcat(temp{:});

Guillaume
Guillaume il 25 Gen 2017
As Jan says, it's difficult to understand what you want when you don't use valid matlab syntax for your examples. An example constructing a small cell array and showing the exact desired output would be a lot more useful.
At a guess,
column1 = cellfun(@(m) m(:, 1), x, 'UniformOutput', false);
column1 = vertcat(column1{:});

Categorie

Scopri di più su Multidimensional Arrays in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by