[解決済み] 演算子のオペランドは、論理スカラー値に変換可能でなければならない。
質問
簡単な問題があり、Matlabで高速に実装できるものを探しています。私は値の配列を持っています, としましょう:
a = floor(rand(5,5).*255)
次に、同じような大きさの閾値の配列があり、それをこう呼ぶことにします。
a_thresh = floor(rand(5,5).*255)
の中の値については
a
の対応する値より0.5倍小さい場合,その値は
a_thresh
の値の1.2倍の場合も同様に0を出力させたい。
a_thresh
もゼロにする必要があります。
すなわち
:
a(a < a_thresh.*0.4) = 0
a(a > a_thresh.*1.2) = 0
0.4xと0.5x、1.0xと1.2xの間の値には比例した量を、それ以外の0.5と1.0の間の値には
a
を変更しない。以下のようなものが使えると思いました。
a(a>= a_thresh .* 0.4 && a <a_thresh.* 0.5) = ((a - a_thresh.*0.4)/(a_thresh.*0.5 a_thresh.*0.4)) .* a;
しかし、次のようなエラーが発生します。
||| および && 操作のオペランドは、論理的なスカラー値に変換可能でなければなりません。
これを解決する方法について、何かアドバイスはありますか?明らかに私はこれを行うためにループを使用することができ、それは些細なことですが、私はコードがベクトル化されたままにしておきたいと思います。
どのように解決するのですか?
に関すること
&&
に対してのみ操作できることです。
スカラー
一方
&
は配列も操作できます。を変更する必要があります。
&&
から
&
を使用して動作させることができます(詳しくは
この質問
).
更新しました。
コメントにある2つ目の問題について: 左側はインデックスを使用している(特定の要素のみを選択している)ため、要素の数が異なっており、右側は行列全体を扱っています。
a
と
a_thresh
.
両側でインデックスを使用する必要があるので、変数に格納してから、以下のような流れで配列の添え字として使用することをお勧めします。
idx = (a >= a_thresh*0.4 & a < a_thresh*0.5);
a(idx) = ((a(idx)-a_thresh(idx)*0.4) ./ (a_thresh(idx)*0.5*a_thresh(idx)*0.4)) .* a(idx);
計算そのものが正しいかどうかはわからないので、確認はお任せします。
関連
-
[解決済み] Matlabのstrcat関数が空白を含んでいる場合のトラブル
-
[解決済み] MATLABでカラーバーのスケールを制御する
-
[解決済み] Wolfram AlphaとMATLABでは伝達関数のプロットが異なる
-
[解決済み] Matlabでεの機械値を求める
-
[解決済み] MATLABのコードヘルプです。バックワードオイラー法
-
[解決済み] Pythonのif文における&&(論理和)に相当する機能
-
[解決済み】Pythonで2つの変数の論理xorを取得するにはどうすればいいですか?
-
[解決済み】Bashの簡単な論理演算子
-
[解決済み】||と!||の演算子で、あらゆる論理式が可能か?
-
[解決済み】DOSバッチでの論理演算子("and"、"or")について
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】MATLABの&と&&の違いは何ですか?
-
[解決済み】2つのベクトル間の角度 matlab
-
[解決済み] 演算子のオペランドは、論理スカラー値に変換可能でなければならない。
-
[解決済み] matlabでrandnを持つ確率変数の範囲はどうなっていますか?
-
[解決済み] Matlab: 逆コサイン(acos)の完全解を返す
-
[解決済み] Matlab - 連立方程式を解くときにvpasolveエラーが発生する
-
[解決済み] パーフカーブで1つの値を返す - matlab
-
[解決済み] MATLABで音を止めるには?
-
[解決済み] RGBカラーによるMATLABプロット
-
[解決済み] MATLABのコードヘルプです。バックワードオイラー法