代码之家  ›  专栏  ›  技术社区  ›  user6050

MATLAB条件最小函数忽略条件?

  •  0
  • user6050  · 技术社区  · 12 年前

    我有一个 结构 A. 具有 领域 B C .

    B的值是两倍,可以取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 回复  |  直到 11 年前
        1
  •  1
  •   Mohsen Nosratinia    12 年前

    这个问题源于向量 a 与原始矢量大小不同 A(1).B(:) 。所以你得到的价值 index 指的是中的相应位置 歪投球 A(1).C(:) 要获得正确的索引,请使用:

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