![](/img/trans.png)
[英]Is there a better/faster way of randomly shuffling a matrix in 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==1991
, n(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.