Azzera filtri
Azzera filtri

acessing cell arrays with different number of rows

7 visualizzazioni (ultimi 30 giorni)
Hi,
I have cell array "out" 1x123 cells. Within each cell of out{1,1}, <1x3 cells. How can I access 2 and 3 columns of each cell within "out" and store in flows2 matrix. I am having a difficulty because each cell of "out" has different number of rows.
So, I tried this way
for j=1:length(csvFiles)
formatOut = 'yyyy';
flows2(:,j)=[str2num(datestr(datenum([out{1,j}{1,2}],1900),formatOut)) [out{1,j}{1,3}]];
end
I am receiving this error. Subscripted assignment dimension mismatch.
My question is, any other efficient way of doing this?
Any suggestion is appreciated.
Thanks in advance,

Risposta accettata

Star Strider
Star Strider il 3 Set 2014
The only option I can see is to create flows2 as a cell array:
flows2{j} = ...
  6 Commenti
Damith
Damith il 3 Set 2014
Thanks. How can I store q2 values in different columns for all the cells. Something like this,
for i=1:length(csvFiles)
q2(:,i)=flows2{i}(:,2)
end
When I tried this I received this error: Subscripted assignment dimension mismatch.
I know know this is due to uneven number of rows of 2nd column of each cells. Is there a way to store with different names like q1,q2,....length(csvFiles)?
Star Strider
Star Strider il 3 Set 2014
For the same reason as with flows2 (different size columns), you will need to store them in a cell array:
for i=1:length(csvFiles)
q2{i}=flows2{i}(:,2)
end
If you wanted to, you could do that in your ‘j’ loop. Simply add it as a separate line and save an extra loop.

Accedi per commentare.

Più risposte (0)

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