Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何利用MATLAB中的索引查找函数约束_Matlab - Fatal编程技术网

如何利用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