如何删除内部少于5个元素的单元格数组的所有元素。
result{1}= 1
result{2}= [2 3 4 5 6 7 8]
result{3}= [9 10 11 12 13 14 16 17 18]
result{4}= [19 20 21]
在此示例中,我想删除result{1}
和result{4}
,因为它们内部的元素少于5个。
有了这个主题(matlab length of each element in cell array),我知道如何获取每个元素的长度,但是如何删除特定长度的元素?
答案 0 :(得分:7)
只需通过逻辑索引选择具有4个以上元素的元素:
result = result(cellfun('length', result) >= 5);
答案 1 :(得分:0)
此代码将满足您的需求。但是Mohsen的上述答案非常紧凑而且很好。
result{1}= 1;
result{2}= {2 3 4 5 6 7 8};
result{3}= {9 10 11 12 13 14 16 17 18};
result{4}= {19 20 21};
i = 1;
while i<=size(result,2)
if size(result{i},2)<5
result(i)=[];
end
i = i+1;
end