問題タブ [bsxfun]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
722 参照

r - この「スパース」Matlab bsxfun 呼び出しを R に変換するにはどうすればよいですか?

非スパース形式では次のようになります。

編集:

これらのスパース ベクトルの行列乗算を行い、スパース配列を返したいと思います。

NRowSums * NColSums (または、それがスカラーを返す場合は、それらを反転すると思います) データを一時的に格納するために非スパース変数を使用しません。

EDIT2:

私は現在これを持っています:

これは、私がやろうとしていること、特に型キャストにとっては少し厄介なようです。また、NRowSum または NColSum のいずれかが存在するすべての要素を計算し、これら 2 つの共通部分だけを計算するのではないため、非常に非効率的です。つまり、この NSums には、元の疎行列よりも約 100 倍多くのエントリがあります。

0 投票する
5 に答える
28180 参照

arrays - MATLAB では、いつ bsxfun を使用するのが最適ですか?

スタック オーバーフローに関する MATLAB の質問に対する多くの適切な回答で、関数 が頻繁に使用されていることに気付きましたbsxfun。なんで?

動機:の MATLAB ドキュメンテーションでbsxfunは、次の例が提供されています。

もちろん、次を使用して同じ操作を実行できます。

実際、単純な速度テストでは、2 番目の方法が約 20% 高速であることを示しています。では、なぜ最初の方法を使用するのでしょうか。bsxfun「手動」アプローチよりも使用がはるかに高速になる状況がいくつかあると思います。このような状況の例と、なぜ高速なのかについての説明を見てみたいと思います。

また、この質問の最後の要素の 1 つは、MATLAB のドキュメンテーションから再びbsxfun引用したものです。拡張可能。」「シングルトン拡張が有効になっている」というフレーズはどういう意味ですか?

0 投票する
2 に答える
595 参照

matlab - 並べ替えや再形成を行わない行列のデカルト和

2つの2次元行列aとbがあります。a = randn(10, 20)と言いましょうb = randn(10, 30)。デカルト和を計算したい!これらの2つの配列のうち、aの各列とbの各列を一度選択し、サイズ(10、20 * 30)の行列cに一緒に追加する必要があります。bsxfunこれは、、、permuteおよびreshapeasを使用して実行できます。

並べ替えや再形成を必要とせずに、これを行うためのより高速でより直接的な方法が存在するかどうか疑問に思いました。このためのmex関数を書くのは簡単ですが、mexが必要かどうか疑問に思います。

ありがとう!

0 投票する
1 に答える
11500 参照

matlab - PCAの新しい基礎に新しいポイントを投影する方法は?

たとえば、9つの変数と362のケースがあります。PCA計算を行ったところ、最初の3つのPCA座標で十分であることがわかりました。

これで、9次元構造に新しいポイントがあり、それを主成分システムの座標に投影したいと思います。新しい座標を取得する方法は?

ここに画像の説明を入力してください

新しい主成分ベースに投影された新しいポイントの座標を取得するにはどうすればよいですか?

0 投票する
1 に答える
146 参照

matlab - parfor を使用しない場合にのみエラーがトリガーされますか?

以下の最初の Matlab スクリプトを実行すると、エラーはまったく発生せず、コードは期待どおりの結果を生成しますが、matlabpool open と matlabpool close を取り出し、parfor ループを for ループに変更すると、次のエラーが発生します。

必要に応じて CRM_22_12.mat をお送りします。

parfor ループの代わりに通常の for ループを使用した場合にのみエラーが発生するのはなぜですか?

%

%

0 投票する
2 に答える
109 参照

matlab - インデックスのリストに基づいて配列から一定量のデータを抽出する

私は配列を持っています

データの引き出しを開始する場所を示す一連のインデックス:

index ごとiに、その index と次の 4 つの (まあ、x実際には) 列または行の要素が必要です。特殊なケースを無視できるように、配列の末尾に近づくことは避けます。

これをハードコーディングした場合、次を使用できます。

これで私の結果が達成されます。

しかしi、多くの異なる値を持つ可能性があります。

インデックスのリストを範囲のマトリックスに変換する方法、またはこの問題を解決する他の方法について何か考えはありますか?

編集 私はMatlab 2007を使用しています。ソリューションが Matlab の内部構造とツールボックスのみに依存していることが望ましいでしょう。bsxfun2007a まで存在しません。

0 投票する
1 に答える
3018 参照

matlab - Matlab-Subscript インデックスは、実数の正の整数または論理値のいずれかでなければなりません

どこで私は間違えましたか?問題は次のとおりです: R = sqrt(bsxfun(@minus,XX,(XX)').^2+bsxfun(@minus,YY,(YY)').^2);

0 投票する
1 に答える
140 参照

matlab - MATLAB での double for ループのベクトル化: 行ごとに式を割り当てる

マトリックス (size_out、size_in) を入力する必要があります。私は同様の問題を探していますが、それらの解決策はどれも私を助けてくれませんでした.

初めての試みでした

内側のループを削除して、このコードをベクトル化しました。

私の質問は: 外側のループをベクトル化する方法は?

reshape&permute または bsxfun の組み合わせがここで役立つかどうかはわかりません。

前もって感謝します。

0 投票する
1 に答える
169 参照

matlab - 2 つの行列間の距離をベクトル化する方法は?

私は K 最近傍分類器を構築しており、距離計算を一度に実行したいと考えています (ベクトル化されていないバージョンは実行に長い時間がかかるため、これも役に立ちます)。

サイズ 28000 サンプル x 784 フィーチャのテスト データセットと、サイズ 42000 サンプル x 784 フィーチャのトレーニング データセットがあります。私の質問に答えるコードは、サイズが 28000 x 42000 のマトリックスになるはずです。各行には、そのテスト例から 42000 個のトレーニング例のそれぞれまでの距離が含まれています。

私が思いついた最善の方法は、sum と bsxfun を使用して各テスト例のすべての距離を一度に計算することですが、それでも 28000 個の例すべてをループする必要があり、前述のように時間がかかります。

0 投票する
1 に答える
521 参照

matlab - ループ内のbsxfun行減算

D98 行 2 列のテキスト ファイルがあります。次のようになります。

10 0.261344
11 0.456167
12 0.668595
2 0.481754
...など

M17 行 2 列の別の Excel ファイルがあります。
最初の行からすべての行の値を減算し、次に 2 などから減算したいので、次のような結果が得られます。

10-11 -0.194823
10-12 -0.407251
...など

つまり、1 行目とすべての残り、2 行目とすべての残りの違い..1 列目が 2 番目の M Excel ファイルの 1 列目と同じ値を持つ行を除きます。これにより、81行と比較して合計の違いが生じます。

私はこれを使用しようとしています:

%これをチェックすると、(((98-17)^2,1)が必要な間、1つのループのみがすべてゼロ(98,1)になります。式の最後の部分を変更して、必要なものを取得する必要がありますが、私は' m bsxfun で立ち往生.すべての行を減算する正しい式を作成する方法がわかりません。

私はMatlabの初心者です。どんな助けでも大歓迎です。また、mathworks のヘルプとは別に、いくつかのマニュアルやチュートリアルを提案できれば. どうもありがとう。