如何利用MATLAB中的索引查找函数约束
我想返回满足某些条件的元素的索引,以及它们的索引应该在某些常量如何利用MATLAB中的索引查找函数约束,matlab,Matlab,我想返回满足某些条件的元素的索引,以及它们的索引应该在某些常量A和B之间的条件。有一种简单的实现方式: inds=find(conditions) real_inds=find(A<=inds<=B) inds=find(条件) real_inds=find(A如何将自己限制在A,B的范围内? 假设您有my_vector,并且希望找到大于0.3且小于0.5的元素(“代码>条件””)。将自己限制在A,B范围内很简单: masked_ind = find(my_vector(A:B)
A
和B
之间的条件。有一种简单的实现方式:
inds=find(conditions)
real_inds=find(A<=inds<=B)
inds=find(条件)
real_inds=find(A如何将自己限制在A
,B
的范围内?
假设您有my_vector
,并且希望找到大于0.3且小于0.5的元素(“代码>条件”
”)。将自己限制在A
,B
范围内很简单:
masked_ind = find(my_vector(A:B) > 0.3 & my_vector(A:B) < 0.5);
real_ids = masked_ind + A - 1; %// correct the offset induced by `A`.
您可以这样做:
indices = g( (g >= A) & (g <= B) & (conditions) );
假设您有向量x
,条件:x==7或(x>3和x<5)
,您希望在A和B之间进行搜索
现在将向量g
定义为索引的辅助向量:
g = 1:length(x);
然后得到如下索引:
indices = g( (g >= A) & (g <= B) & (conditions) );
条件:x>=0.1
和x
indices = g( (g >= A) & (g <= B) & (x == 7 | (x > 3 & x < 5)) );
x = [0.0975 0.2785 0.5469 0.9575 0.9649 0.1576 0.9706 0.9572 0.4854 0.8003];
A = 4;
B = 9;
g = 1:length(x);
indices = g((g >= A) & (g <= B) & (x <= 0.7) & (x >= 0.1));
indices =
6 9