[~,~,rawdata] = xlsread('somefile');
rawdata
是1311 x 14个单元格的单元格数组。我想从指定列的第二行访问最后一行。
与rawdata{2:,ith col}
类似,但却出错。
我想解决的最终目的是找到从异构格式excel导入的2-D单元格数组的每一列的NaN
计数。
答案 0 :(得分:1)
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'}(在命令窗口中显示'test'
)然后打印字符串'test'(显示test
)
答案 1 :(得分:0)
要获得每列中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