2

一般に、 == 演算子は「数値」の等価性のテストには適していませんが、代わりに のようなことを行う必要がありますabs(a - b) < eps。ただし、配列内の最大の要素の位置を見つけたい場合max、要素が変更されずに返されると想定しても問題はありませんか? やってもいいですか

[row, col] = find(a == max(a(:));
4

1 に答える 1

3

はい。

max2 つの値を比較するだけで、値を変更する可能性のある操作は実行しません。

a の典型的な C++ 実装を次に示しますmax

template <class T>
T max(T a, T b) {
    return a>b ? a : b; 
}

ご覧のとおり、この関数はまたはとまったく同じ値を返します。ab

Matlab は、行列形式、凝った書式設定ラッパーなどを追加するだけですが、そのカーネルは上記の例と同じ原則に従います。

はい、ここで平等を使用しても問題ありません。

于 2012-12-04T11:46:37.473 に答える