如何在MATLAB中确定2D单元数组中不同列的大小?

时间:2015-06-26 15:39:27

标签: matlab

我有一个2D单元格数组,其中第一行由数据库中的标签组成,例如:

myData(1,:) = {'X', 'Y', 'Z', 'W'};

对于每个标签,都有一个列(即从特定列的第二行到最后一行)由单元格条目组成,但可能存在不填充所有单元格的情况。

这个例子应该举例说明我正在使用的内容:

myData = 
    'X'    'Y'    'Z'    'W'
    [1]     []     []    [1]
    [2]     []     []    [2]
     []     []     []    [3]

是否可以确定我的2D单元阵列的每列有多少非空行,不包括第一行标签?

1 个答案:

答案 0 :(得分:3)

这是你想要的吗?

sum(~cellfun('isempty', myData))-1

~cellfun(...)部分为2D单元阵列中非空的每个单元格提供1,否则为0。然后计算每列的总和(sum(...));减去1,以便不考虑第一行。您的示例中的结果是:

>> myData
myData = 
    'X'    'Y'    'Z'    'W'
    [1]     []     []    [1]
    [2]     []     []    [2]
     []     []     []    [3]

>> sum(~cellfun('isempty', myData))-1
ans =
     2     0     0     3