【发布时间】:2013-12-08 08:55:18
【问题描述】:
假设我有一个像这样的单元格数组:
1x25 double 1x25 double 1x25 double 1x11 double 'Mean'
1000 0 0 5 0
1000 10 5 100 0
1000 20 5 200 0
1000 30 5 100 0
现在我想检查这个元胞数组中是否有第一列为1000、第二列为30、第三列为5、第四列为@的行987654325@ - 怎么做?第一行应该被忽略,因为它只有列标题。
我想出了一个很奇怪的方法:
sum(sum([[data{2:end, 1}]'==1000 [data{2:end, 2}]'==30 [data{2:end, 3}]'==5 [data{2:end, 4}]'==100], 2)==4)
而结果必须是 > 0 以便至少出现一次数据元组...
提前致谢
编辑:我想出了:
found = ismember([1000 30 5 100], cell2mat(data(2:end, 1:4)), 'rows')
我认为这个解决方案非常好 - 但如果您有更好的方法,请发布它。它不需要很快,只需要可读和简单。
【问题讨论】: