1
A
の要素に0〜255の要素の行列があります。今度は、> 48
と< 200
の要素を平方根に変更したいだけです。行列内の特定のエントリのみの平方根を計算する
私はこのような要素を見つけると置き換えることができます知っている:
A(A>48 & A<200) = 3;
しかし、私は数に要素を設定する必要はありませんが、私は新しい価値のための要素の値を使用します。このような
何か:
A(A>48 & A<200).^(1/2)
上記の構文は明らかに正しいではありませんが、私は> 48
と< 200
である要素の平方根を計算したいループのない方法はあります?
それは代わりに '&'の '' &&する必要がありますか。 – costrom
@costrom No.少なくとも行列や配列ではありません。行列は短絡動作をサポートしていないので、 '&'を使用する必要があります。 **演算の連鎖内にあるすべての配列/行列の条件をチェックする必要があります**。 '&&'は通常、規約によってスカラーに適用され、 'A'はスカラーではありません。この記事を参照してください:http://stackoverflow.com/questions/1379415/whats-the-difference-between-and-in-matlab ...そして、特にユーザーgnoviceのコメント:http://stackoverflow.com/questions/ 1379415/whats-the-difference-between-in-matlab#comment1218885_1379460 – rayryeng
@costrom私は 'sqrt'関数を呼び出すことは、操作が特殊化されているために、 Matlabのパーサーは、その式に式を書きたくない、あるいは書けないようにすることはできません。私のシステムでは、 'sqrt'は約2倍高速です。 – TroyHaskin