将值与值向量进行比较,并在Matlab中返回匹配项

将值与值向量进行比较,并在Matlab中返回匹配项,matlab,Matlab,有谁能告诉我如何在MATLAB中将匹配的值返回到值和列向量之间的比较。假设要比较的值是200,我得到一个列向量: a = [21; 32; 433; 54; 42;] 我想找到向量a中的哪个元素返回比较的匹配项200您可以使用find来获得满足条件的索引向量 以下命令返回找到的符合条件的索引处的值 a(find(a >= 200)) ans = 433 类似地,a可以使用find获得满足条件的索引向量 以下命令返回找到的符合条件的索引处的值 a(find(a >=

有谁能告诉我如何在MATLAB中将匹配的值返回到值和列向量之间的比较。假设要比较的值是200,我得到一个列向量:

a = [21; 32; 433; 54; 42;]
我想找到向量a中的哪个元素返回比较的匹配项200您可以使用find来获得满足条件的索引向量

以下命令返回找到的符合条件的索引处的值

a(find(a >= 200))

ans =

     433
类似地,a可以使用find获得满足条件的索引向量

以下命令返回找到的符合条件的索引处的值

a(find(a >= 200))

ans =

     433
同样,a使用如下:

positions = find(200<=a); %// all positions satisfying condition
values = a(positions); %// values at those positions
使用方法如下:

positions = find(200<=a); %// all positions satisfying condition
values = a(positions); %// values at those positions

其他答案是好的,但find是不必要的。尽可能使用逻辑索引。看到200=200。在任何情况下,您都可以执行以下操作:

vals = a(200 <= a);
这意味着只有第三个元素满足您的条件。如果我们使用这个逻辑向量并将其索引到,我们将只返回满足您的条件的元素。因此,我们将得到:

vals = 

433

其他答案是好的,但find是不必要的。尽可能使用逻辑索引。看到200=200。在任何情况下,您都可以执行以下操作:

vals = a(200 <= a);
这意味着只有第三个元素满足您的条件。如果我们使用这个逻辑向量并将其索引到,我们将只返回满足您的条件的元素。因此,我们将得到:

vals = 

433

这个发现是不必要的,谢谢你指出使用find的低效性。感谢@david该发现是不必要的,aa感谢您指出使用该发现的低效性。谢谢@davidhanks这很有帮助!谢谢,这很有帮助!