尝试从向量中删除结构时出错

时间:2015-11-22 13:23:16

标签: matlab vector struct

我试图从具有某个值的字段的向量中删除所有结构,我尝试了这个但是得到了#34;错误使用了== 输入参数太多。"

s1 = struct('number', 2, 'value', 3);
s2 = struct('number', 3, 'value', 4);
s3 = struct('number', 3, 'value', 5);

aT = [s1, s2, s3];
aT(aT.number == 3) = [];

我想aT只有[s1],任何帮助都会很棒!感谢

1 个答案:

答案 0 :(得分:0)

在结构数组上使用logical indexing代替:

idx = (cat(1,aT.number) == 3);
result = aT(idx);

使用cat是因为访问struct字段的操作输出了一种以逗号分隔的列表,需要将其连接到一个向量。