splitting a cell array and determining its size

Imagine that you have a cell array and you want to determine its size. What command would you use for it? Also how do I split the data of the cell array into half. lets say it has 60 rows and and i want it to be split after 30 rows.
thanks

 採用された回答

Guillaume
Guillaume 2014 年 12 月 20 日

2 投票

Funnily enough. size is the function to get the size of cell arrays and matrices. If you want to split along rows, either use size or end:
c = num2cell(randi(200, 60, 5));
tophalf = c(1: ceil(end / 2), :); %equivalent to c(1 : ceil(size(c, 1) / 2), :)
bottomhalf = c(ceil(end / 2) + 1 : end, :);

3 件のコメント

AA
AA 2014 年 12 月 20 日
thanks, I mean size as in bytes.
Also your code is easy to understand. If I have 60 rows and I want the tophalf to be 4 rows and the bottomhalf to be 56 rows then how do i implement these changes? thanks
Guillaume
Guillaume 2014 年 12 月 20 日
To get the memory footprint of a variable it's whos
c = num2cell(randi(200, 60, 5));
msize = whos('c')
As for splitting:
tophalf = c(1:4, :);
bottomhalf = c(end-56+1:end, :);
Image Analyst
Image Analyst 2014 年 12 月 20 日
That's a funny definition of "half".

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeCell Arrays についてさらに検索

質問済み:

AA
2014 年 12 月 20 日

コメント済み:

2014 年 12 月 20 日

Community Treasure Hunt

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

Start Hunting!

Translated by