簡體   English   中英

如何從矩陣中尋找價值

[英]How to find value from matrix

假設我有一個矩陣

A=[0.8 0.9 0.7 0.5 0.3 0.8 0.2 0.1];    % 8 points

其中A來自B邏輯1

B=[1 0 1 0 0 1 0 1 0 1 1 0 1 1];

因為我想找到滿足的位置C

C=find(A<0.6 & A>0.35)

其中ans為C=4 我的問題是如何獲取B=8的真實位置?

除非您沒有將索引存儲在某個地方,否則我看不到您在這里有很多選擇。

tmp = find(B);
idx = tmp(C);

如果您確實想多次使用此映射,建議您存儲索引而不是二進制向量。 如果二進制向量是稀疏的(或不是布爾向量),這也將提高內存效率,因為您需要的條目更少。

如果還需要二進制向量,則應在內存允許的情況下都存儲這兩個向量。 當我在Matlab中完成這種映射時,實際上我既使用了二進制矢量(掩碼)又使用了索引矢量。 這使我免於首先將掩碼映射到索引,然后將索引映射到過濾后的位置(也就是說,每次跳過tmp = find(B); idx = tmp(C);一部分,直接進入idx = allIdx(C) )。

這將使您獲得B中的索引

A=[0.8 0.9 0.7 0.5 0.3 0.8 0.2 0.1];
B=[1 0 1 0 0 1 0 1 0 1 1 0 1 1];
C=find(A<0.6 & A>0.35);
temp=0;
for i=1:size(B,2)
    temp=temp+B(i);
    if(temp==C)
        break;
    end
end
locationB=i;
locationB

暫無
暫無

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

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