如何访问从索引 i 到末尾的元胞数组

How to access cell array from an index i to the end

[~,~,rawdata] = xlsread('somefile');

rawdata 是一个 1311 x 14 单元格数组。我想从第二行到最后一行访问指定列。

类似于rawdata{2:,ith col},但它给出了一个错误。

我要解决的最终目的是为从异构格式 excel 导入的二维元胞数组的每一列找到 NaN 计数。

rawdata(2:end,ith_col) 应该有效,正如评论中所讨论的那样。

使用 end 来引用矩阵或数组中的最后一个字符。

使用() 来引用数组或矩阵中的元素块。由于矩阵的元素在概念上是 1x1 矩阵,因此 myMatrix(1,3) 获取第一行中的第三个元素。

使用{}从数组中提取单个元素。例如:

myCell = {'test','hello_world',56,[1;2;3]};
disp(myCell(1))
disp(myCell{1})

将首先打印 1x1 单元格 {'test'}(出现在命令 window 中 'test'),然后是字符串 'test'(出现在 test )

要在每列中获得等于NaN的单元格数,您可以使用

result = sum(cellfun(@(n) isequalwithequalnans(n,NaN), rawdata), 1);

例如,

rawdata = { 'aa', NaN;
            2,    NaN;
            NaN,    3 };

生产

result =
     1     2

如果您的所有单元格 包含 NaN 或数字 (因此没有字符串等),您可以使用更简单的

result = sum(cellfun(@isnan, rawdata), 1);

例如,

rawdata = { 1,   NaN,   3;
            2,   NaN, NaN;
            NaN,   7,   4 };

给予

result =
     1     2     1