使用 find 命令的 Matlab 错误
Matlab error using find command
我有向量 [0 0 1 1 0 1 1 0 1]
。我想找到 0 和 1 的索引。我尝试使用 find
命令,但我得到:
0x1 empty double column vector
我认为这段代码会对您有所帮助:
>> 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
虽然 正确 returns 0
和 1
的位置,但这些索引的典型用例是从另一个索引中选择元素匹配这些位置的数组。如果确实如此,则应该依赖逻辑索引 而不是 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
我有向量 [0 0 1 1 0 1 1 0 1]
。我想找到 0 和 1 的索引。我尝试使用 find
命令,但我得到:
0x1 empty double column vector
我认为这段代码会对您有所帮助:
>> 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
虽然 0
和 1
的位置,但这些索引的典型用例是从另一个索引中选择元素匹配这些位置的数组。如果确实如此,则应该依赖逻辑索引 而不是 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