0

サイズ mx n の配列があります。各行には n 個の要素があり、確率 (0 から 1 の間) を示します。要素間の最大の差がある行を見つけたいのですが、ゼロ以外の要素も大きい方が良いでしょう。

たとえば、配列 Arr では次のようになります。

Arr = [0.1   0     0.33   0     0.55  0;
       0.01  0     0.10   0     0.2   0;
       1     0.1   0      0     0     0;
       0.55  0     0.33   0     0.15  0;
       0.17  0.17  0.17   0.17  0.17  0.17]

最適な行は 3 行目です。これは、より大きな値を持つより明確な値があるためです。Matlab を使用してこれを計算するにはどうすればよいですか?

4

2 に答える 2

0

0マトリックスで sを無視したいようです。NaNこれらを に設定し、 を無視する特別な組み込み関数NaN(例: nanminnanmaxなど)を使用することで、これを実現できます。

ri以下は、最小 (非ゼロ) 応答と最大応答の差が最大の行 ( ) を見つけるためのサンプル コードです。

nArr = Arr;
nArr( Arr == 0 ) = NaN; % replace zeros with NaNs
mn = nanmin(nArr, [], 2); % find minimal, non zero response at each row
mx = nanmax(nArr, [], 2); % maximal response
[~, ri] = nanmax( mx - mn ); % fid the row with maximal difference
于 2013-01-03T12:52:35.067 に答える