[英]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.