我有一个矩阵,我试图找到我得到一个值的地方。所以,我使用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)
.
.
.
find(x==2015)
谢谢
答案 0 :(得分:1)
您可以使用logical indexing:
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)
等。
答案 1 :(得分:0)
您可以使用矩阵来保存结果。并使用“for loop”自动执行。
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
在每一行中,我们有一个值忽略零数的结果。