How do I reduce an {nxm(3x1)} cell to a an {nx{3xm}} cell?

3 visualizzazioni (ultimi 30 giorni)
I apologize in advance if this seems trivial.
I have an {nxm(3x1)} object. That is, I have an n x m cells, each a 1x3 matrice. I'd like to reduce this so that I have {nx1} cells, each of which contain 1 {3xm} cell (or double, it doesn't matter) so that I can easily export the various 3xm matrices to n different 3xm arrays within an excel spreadsheet.
I've made various attempts at writing for loops, to no avail.
Any insight would be greatly appreciated.
Thanks.
EDIT: apparently I didn't look close enough at the cells, they are actually 1x3 doubles vice the original 3x1 I had stated.

Risposta accettata

Iman Ansari
Iman Ansari il 16 Apr 2013
Hi
New_Cell={};
for i=1:n
New_Cell{i,1}=cell2mat(C(i,:));
end
  1 Commento
Zach Modig
Zach Modig il 16 Apr 2013
Thanks for the help. That gets me closer, but every n in New_Cell is now 1x(3*m) instead of 3xm.

Accedi per commentare.

Più risposte (1)

Zach Modig
Zach Modig il 16 Apr 2013
Modificato: Zach Modig il 16 Apr 2013
Once I accounted for the actual structure of the cells, Iman's answer proved to be the correct one. I had to invert each cell into a 3x1 structure, and then the loop using cell2mat that Iman correctly suggested.
for j = 1:n
for k = 1:m
C{j,k} = C{j,k}';
New_Cell{j,1} = cell2mat(C(j,:));
end
end
  1 Commento
Iman Ansari
Iman Ansari il 16 Apr 2013
Try this:
C=cellfun(@transpose,C,'UniformOutput', false)
New_Cell={};
for i=1:n
New_Cell{i,1}=cell2mat(C(i,:));
end
New_Cell

Accedi per commentare.

Categorie

Scopri di più su Cell 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