使用find命令发生Matlab错误

时间:2017-03-19 09:39:09

标签: matlab vector indexing position elements

我有矢量[0 0 1 1 0 1 1 0 1]。我想找到0和1的索引。我尝试过使用find命令,但我得到了:

0x1 empty double column vector

2 个答案:

答案 0 :(得分:1)

我认为此代码可以帮助您:

>> arr = [0 0 1 1 0 1 1 0 1];
>> find(arr == 0)

ans =

     1     2     5     8

>> find(arr == 1)

ans =

     3     4     6     7     9

答案 1 :(得分:1)

虽然aahung's answer正确返回01的位置,但这些索引的典型用例是从另一个选择元素匹配这些位置的数组。如果情况确实如此,那么应该依靠逻辑索引而不是 find

tfArr = [0 0 1 1 0 1 1 0 1];
data =  reshape(magic(3),1,[]); % [8,3,4,1,5,9,6,7,2]

dataWhereOnes = data(logical(tfArr))
% equivalently to the above : data(~~tfArr)
dataWhereZeros = data(~tfArr)

结果是:

dataWhereOnes =
     4     1     9     6     2

dataWhereZeros =
     8     3     5     7