私は、それぞれのルーピングとisnanの使用によって、私の行列のすべてのNaNを置き換えることを考えました。しかし、これは私のコードが実行するよりもゆっくりと実行されると思われます。誰かがより良い提案をすることはできますか?行列全体をループせずに、すべてのNaNを0に置き換えますか?
8
A
答えて
23
のは、あなたの行列があるとしましょう:
A =
NaN 1 6
3 5 NaN
4 NaN 2
あなたはNaN
要素を見つけて、このようなisnan
を使用してゼロに置き換えることができます。
A(isnan(A)) = 0;
次に、あなたの出力は次のようになります。
A =
0 1 6
3 5 0
4 0 2
5
x
があなたの行列である場合は、インデックスに配列をisnan
機能を使用します。
x(isnan(x)) = 0
次の2つのステップでそれを行う場合、それは何が起こっているか確認するために、おそらく明確です。最初に真偽値の配列を作成し、これを使って選択した要素をゼロに設定します。
bad = isnan(x);
x(bad) = 0;
これはかなり基本的なものです。 MATLABのオンラインチュートリアルの一部を読んで速度を上げることはうまくいくでしょう。
4
関数isnan
はベクトルエド、意味:
>> A = [[1;2;NaN; 4; NaN; 8], [9;NaN;12; 14; -inf; 28 ]]
A =
1 9
2 NaN
NaN 12
4 14
NaN -Inf
8 28
>> A(isnan(A)) = 0
A =
1 9
2 0
0 12
4 14
0 -Inf
8 28
関連する問題
- 1. float 0をNaNに置き換えます。
- 2. Powershell - 全体の配列に "ウムラウト"を置き換えます。
- 3. データフレームのNaN以外のすべてのエントリを1で置き換え、すべてのNaNを0で置き換える方法
- 4. 1つの値がNaNの場合、Pandasは行内のすべてのアイテムをNaNに置き換えます。
- 5. テキストファイル内の列全体を置き換えます。
- 6. キャンバス全体を消去せずに関数を置き換える?
- 7. ファイル内の文字列を見つけ、行全体を置き換えます
- 8. MYSQLテーブル全体を別のテーブルに置き換えます
- 9. NaNに基づいて列の値を0または1に置き換えます。
- 10. フィンドラースクリプト全体の応答本体を置き換えます
- 11. アルマジロ行列からNaNを置き換える方法は?
- 12. MongoDB Doc全体をid 1に置き換えます。
- 13. 文字列を含む行を見つけ、行全体を別の行に置き換えます
- 14. プロット全体を再描画せずに凡例や軸を置き換える方法はありますか?
- 15. bashツールを使用してpackage.jsonの行全体を置き換えます。
- 16. 文字列全体の文字を1文字に置き換えます
- 17. テキスト全体をテキスト文字列の一部に置き換えます。SQL
- 18. Sedは交換線全体を置き換えます
- 19. コード全体の「x」を置換えの異なるリストに置き換えるためのループ
- 20. データフレーム内でNAsを0に置き換える特定の列をループする
- 21. 行列のすべての要素を逆行列で置き換えます。
- 22. Sinon:スタブとオブジェクト全体を置き換えて新しいオブジェクトに置き換えます
- 23. PIVOTの列とnull値を0に置き換えます
- 24. Numpy NaNを文字列リストの文字列に置き換えます。
- 25. ループを使用せずにベクトルの行列行を置換する
- 26. ExcelでNan値と空白セルを "0"に置き換えます。私のコードはまた、「0」
- 27. MySQLは文字列の一部に基づいて文字列全体を置き換えますか?
- 28. Asp.Net MVCパーシャルビューフォームのポストは、ページ全体を置き換えます
- 29. HashtableのすべてをConcurrentHashmapに置き換えても安全ですか?
- 30. シバン全体をソートせずにテーブルを並べ替える
あなたの答えと受け入れられたものとの間に3秒の差がありました。 – rayryeng