通过索引删除行

时间:2014-04-09 16:26:31

标签: matlab

我有大约300行的单元格数组。该数组有6列。在第6列中,很多行都带有零。我想从我的数组中删除这些行。

我正在使用下面这一行,但是收到一条错误消息“未定义的函数'ne'用于'cell'类型的输入参数。”

myData = myData(myData(:,6) ~= 0);

1 个答案:

答案 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),:) = []