0

我有一个结构 A字段 BC

B 的值为 double,可以取值 1 或 2。C 的值是 double,范围从 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
4

1 回答 1

1

a问题源于向量与原始向量大小不同的事实A(1).B(:)。所以你得到的值index是指对应的位置 in anot inA(1).C(:)来得到正确的索引使用:

A(1).B(a(index))
于 2013-09-20T11:01:30.733 回答