MATLAB条件min函数忽略条件?

时间:2013-09-20 09:24:33

标签: matlab indexing find min

我的结构 A 字段 B C 。< / p>

B的值是double,可以取值1或2。 C的值是双倍的并且范围从1到约50。 B和C都具有相同数量的元素(当为C赋值时,则将1或2分配给B)。

以下代码应该找到B等于1的所有索引值,然后使用这些索引值来查找C的最小值。

>> a=find(A(1).B(:)==1);

>> [value,index]=min(A(1).C(a))

value =   5.020000000000000
index =   630

如下所示,当我将最小值索引放回B时,它返回2。

>> A(1).B(630)

ans =     2

1 个答案:

答案 0 :(得分:1)

问题源于向量a与原始向量A(1).B(:)的大小不同的事实。因此,您在index中获得的值是指a中不在A(1).C(:)中的相应位置,以便正确使用索引:

A(1).B(a(index))