MATLAB:删除单元格数组中具有一定长度的元素

lam*_*bda 2 arrays matlab cell-array

如何删除内部少于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]
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我想删除result{1}result{4},因为他们有内部不到5元.

有了这个主题(单元格数组中每个元素的matlab长度),我知道如何获取每个元素的长度,但是如何删除特定长度的元素呢?

Moh*_*nia 7

只需通过逻辑索引选择具有4个以上元素的元素:

result = result(cellfun('length', result) >= 5);
Run Code Online (Sandbox Code Playgroud)