build a matrix from cell

10 visualizzazioni (ultimi 30 giorni)
Niki
Niki il 8 Mag 2013
Dear
I have a cell array which I need to select only first column of each cell separately and put it into a matrix. But each column has different number of row.
can somebody help me ? I think I can build a matrix of zero with the size of my cell and then I put each column separately. However, following effort does not work.
[n,m]=size(X)
A = zeros(100,n);
for i=1:n
A (:,n) = X{n}(:,1)
end

Risposte (2)

Azzi Abdelmalek
Azzi Abdelmalek il 8 Mag 2013
X={magic(4),eye(4),rand(4)} % Example
y=cell2mat(cellfun(@(x) x(:,1),X,'un',0))
  3 Commenti
Azzi Abdelmalek
Azzi Abdelmalek il 8 Mag 2013
y=cell2mat(cellfun(@(x) x(:,1)',X,'un',0))'
Niki
Niki il 8 Mag 2013
Modificato: Niki il 8 Mag 2013
Again thanks but as I explained from very beginning the row of each column is not equal, by running that one I get this error
??? Error using ==> cat
CAT arguments dimensions are not consistent.
Error in ==> cell2mat at 85
m{n} = cat(1,c{:,n});

Accedi per commentare.


Azzi Abdelmalek
Azzi Abdelmalek il 8 Mag 2013
Modificato: Azzi Abdelmalek il 8 Mag 2013
X={magic(5);eye(4);rand(6)}
m=numel(X);
n=max(cellfun(@(x) size(x,1),X));
out=zeros(n,m);
for k=1:m
a=X{k}(:,1);
out(1:numel(a),k)=a;
end
  3 Commenti
Azzi Abdelmalek
Azzi Abdelmalek il 8 Mag 2013
What is the size of X?
Niki
Niki il 8 Mag 2013
[n,m]=size(peaks)
n =
8300
m =
1

Accedi per commentare.

Categorie

Scopri di più su Creating and Concatenating Matrices 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