acessing cell arrays with different number of rows

7 views (last 30 days)
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,

Accepted Answer

Star Strider
Star Strider on 3 Sep 2014
The only option I can see is to create flows2 as a cell array:
flows2{j} = ...
  6 Comments
Damith
Damith on 3 Sep 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 on 3 Sep 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.

Sign in to comment.

More Answers (0)

Categories

Find more on Cell Arrays in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!