我想在MATLAB中计算一个Cell数组的行数。 我使用下面的代码来计算Cell数组的列数,但我不知道如何计算它的行数。
filledCells = ~cellfun(@isempty,a);
columns = sum(filledCells,2)
作为一个例子,我有一个单元格数组 x:
x = [5] [1x8 double] [5]
这个单元数组有一行和三列。我需要一个代码来计算行中等于 "1" 的数量,但我没有找到计算它的方法。
我想在MATLAB中计算一个Cell数组的行数。 我使用下面的代码来计算Cell数组的列数,但我不知道如何计算它的行数。
filledCells = ~cellfun(@isempty,a);
columns = sum(filledCells,2)
x = [5] [1x8 double] [5]
这个单元数组有一行和三列。我需要一个代码来计算行中等于 "1" 的数量,但我没有找到计算它的方法。
我试用了大部分的想法,但是都没有成功。然后在herohuyongtao的帮助下,我得到了这个正确运行的想法。
[nr,nc]=size(x)
第几个数字是行数? 谢谢大家。
稍微通用一点的方法:适用于行或列,并考虑每个单元格的大小:
dim = 1; %// 1 for rows, 2 for columns
result = sum(cellfun(@(c) size(c,dim), a), dim);
例子:
>> a = {1, [2 3], []; 4, [], 5}
a =
[1] [1x2 double] []
[4] [] [5]
>> dim = 1;
提供
>> result = sum(cellfun(@(c) size(c,dim), a), dim)
result =
2 1 1
尝试
%% "a" is the cell array, total num of rows will be saved in "rows"
num = length(a); % num of objects in "a" - big rows
rows = 0;
for i=1:num
[r c] = size(C{i})
rows = rows+r;
end
rows=3
,对吧? - herohuyongtaorowCount = size(x,1)
a
的单元格内容是什么? - Luis Mendosum(filledCells)
用于计算行数。 - Oleg