如何访问从索引 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
[~,~,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