索引和互补索引,在Matlab数组中

时间:2016-05-12 15:20:13

标签: matlab

这里我有一个数组并根据条件语句提取一些元素;

A = 10:-1:1;
idx = find(A>3);

获取其余元素的直接方法是什么,这些元素在这里是1,2和3,但是使用了返回的idx?

3 个答案:

答案 0 :(得分:3)

如果仅仅是条件语句,我就不会使用'find'。 你可以使用:

X=A(A>3) %for the conditional Elements or
Y=A(~(A>3)) % for the other group

答案 1 :(得分:3)

只需更改“>”签到“< =”:

idx = find(A<=3);

您也可以使用布尔逆:

idx = find(~(A>3));

答案 2 :(得分:3)

这是对其他答案的补充。您只能通过阵列A一次。我更喜欢布尔索引:

idx1 = A>3;
idx2 = ~idx1;

您可以使用找到返回的索引执行类似的游戏:

idx1 = find(A>3)
idx2 = setdiff(1:length(A), idx1); % assuming A is a vector