我有大约300行的单元格数组。该数组有6列。在第6列中,很多行都带有零。我想从我的数组中删除这些行。
我正在使用下面这一行,但是收到一条错误消息“未定义的函数'ne'用于'cell'类型的输入参数。”
myData = myData(myData(:,6) ~= 0);
答案 0 :(得分:2)
如果是数字的单元格数组,请尝试使用 -
myData(~vertcat(myData{:,6}),6)={[]}
或
myData(~cell2mat(myData(:,6)),6)={[]}
或者这,纯粹来自@ chappjc的评论
myData(~[myData{:,6}],6)={[]}
如果是字符的单元格数组,请尝试此操作 -
myData(~str2double(myData(:,6)),6)={''}
编辑1:如果要删除整行,如果第6列中的相应元素为零,请使用:
对整行进行索引。因此,上述代码将分别改为以下形式:
myData(~vertcat(myData{:,6}),:)={[]}
myData(~cell2mat(myData(:,6)),:)={[]}
myData(~[myData{:,6}],:)={[]}
myData(~str2double(myData(:,6)),:)={''}
编辑2:如果要从包含所有空单元格的单元格数组中删除行,可以使用此 -
myData(all(cellfun('isempty', myData),2),:) = []