我的结构 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
答案 0 :(得分:1)
问题源于向量a
与原始向量A(1).B(:)
的大小不同的事实。因此,您在index
中获得的值是指a
中不在A(1).C(:)
中的相应位置,以便正确使用索引:
A(1).B(a(index))