簡體   English   中英

使用查找命令的Matlab錯誤

[英]Matlab error using find command

我有向量[0 0 1 1 0 1 1 0 1] 我想找到0和1s的索引。 我已經嘗試使用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

盡管aahung的答案正確返回了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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM