Adding up sizes of cell arrays
8 ビュー (過去 30 日間)
古いコメントを表示
Hi, I am wondering how to add up the sizes of cell arrays for each "class." The "classes" are part of a loop. I need to be able to index each sum into j.
for j = 1:NumberOfClasses
sizeOfCellArray{j} = size(CellArray{j})
sum(j) = sizeOfCellArray(j).*sizeOfCellArray(j+1)
end
I know that this is wrong, because sizeOfCellArray(j+1) gets an error (Index exceeds matrix dimensions), but am I on the right track?
1 件のコメント
採用された回答
Tom
2012 年 6 月 27 日
You've made sizeofCellArray a cell, but then treat it like a double:
for j = 1:NumberOfClasses
sizeOfCellArray(j,:) = size(CellArray{j})
sum(j,:) = sizeOfCellArray(j,:).*sizeOfCellArray(j+1,:)
end
I'm not sure how you're accessing j+1 though? I would also advise that you change the name of the 'sum' variable, in case you want to use the built-in sum function later
0 件のコメント
その他の回答 (1 件)
Kye Taylor
2012 年 6 月 27 日
I assume you have a 1-by-NumberOfClasses cell array called CellArray.
Furthermore, I assume that each element of CellArray contains an array.
The following command will return a 1-by-NumberOfClasses double array, where the jth element gives the number of elements composing the array stored in CellArray{j}.
sizes = cellfun(@numel, CellArray);
The total number of elements contained in the contents of CellArray is given by
sum(sizes)
(Make sure you clear your variable sum - in your question's original code - before issuing the above command)
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Matrix Indexing についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!