基于多个条件的逻辑索引

时间:2015-01-14 07:48:30

标签: matlab

我正在尝试根据多个搜索条件返回逻辑向量。我认为这很简单,而且可能确实如此。

所以我只想尝试一个非常简单的例子。我有一个10 x 1的double类型的矢量,叫做myVec。如果myVec中的元素等于5或8,我希望返回1,否则返回0。

myVec
5
3 
8
9
1
8
5
6
7
5

我的结果矢量应该如下所示

Result
1
0
1
0
0
1
1
0
0
1

我尝试了以下内容,

rl = find(myVec == 8 | myVec == 5);
rl = myVec == 8 | myVec == 5;

两次尝试都会给出消息,

错误:等号左侧的表达式不是作业的有效目标。

更新

这是我正在玩的实际矢量,

 myVec = [3 5 12 34 62 98 45 12 12 64 20 5 5 94 87 21 20]';

以下是我尝试使用的代码行,它会抛出错误但看起来应该可以正常工作,

 rl = myVec  == 12 | myVec  == 5 | myVec  = 20;

1 个答案:

答案 0 :(得分:2)

这应该可以解决问题:

myvec = 1:10;
vec = (myvec == 5 | myvec == 8)
vec =

     0     0     0     0     1     0     0     1     0     0

这也没有括号,所以还有其他错误。 find版本给出了元素的索引,也没有错误。实际上,我发现无法重现您的错误消息。