簡體   English   中英

使用Matlab在矩陣中查找某些值的更快方法

[英]Faster way for find some value in matrix with matlab

我有一個矩陣,我試圖找到我在哪里獲得價值。 因此,我正在使用find(x==y)來制作具有值的向量,例如:

n11=find(x==11)
n4=find(x==4)
n8=find(x==8)

n11,n4,n8的長度不同。

有時,我必須對20或30個不同的x值執行20或30次操作,因此,例如,如果我想獲取x∈[1991,2015] find(x==1991) to find(x==2015)的間隔find(x==1991) to find(x==2015)我如何不做就可以更快地獲得這些值

find(x==1991)
.
.
.
find(x==2015)

謝謝

您可以使用邏輯索引

n= find(x>=1991 & x<=2015)

編輯

meshgrid可用於獲取每年的向量:

x= [1991 1992 1991 2015 2016 1992 1988 1994]; % example data
[m,n]= meshgrid(x,1991:2015); % the second argument contains the years we need
n= (m==n);

現在n(1,:)等於x==1991n(2,:)等於x==1992等; find(n(1,:))等於find(x==1991)

您可以使用矩陣保存結果。 並使用“ for循環”自動執行。

start=1991;
endi=2015;
for i=start:endi
    num_column=size(find(x==i),1)
    mat(i-start+1,1:num_column)=find(x==i);
end

在每一行中,我們得到一個值的結果,而忽略了零數字。

暫無
暫無

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

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