問題タブ [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.
matlab - 行列を別の行列で並べ替える
行列がA
あり、この行列の行を並べ替えるとします。マトリックス上で同じ順序を複製するにはどうすればよいですB
か(もちろん同じサイズ)?
例えば
これは私が思いついた最高のものです
好奇心から、他に選択肢はありますか?
更新: 2008a(XP)でプロファイルされたJonasの優れたソリューション:
n = n
n = 2m
これは、 JITAのおかげで(おそらく)ループがMATLABプログラマーにとってもはや嫌悪感ではないことを示しています。
matlab - プログラマー向けの MATLAB チュートリアル
MATLAB コードを書く新入生がまもなく何人か入ります。MATLAB は初めてですが、Java と C++ でのコーディング経験があります。
MATLAB ヘルプのGetting Startedセクションを確認してもらいます。さらに、MATLAB に切り替える際によくある間違い (「MATLAB は 1 からカウントを開始する」など) を犯さないようにするための小さなチュートリアルを提供し、そうでない可能性のある機能をいくつか紹介したいと思います。他の言語から来る場合は注意してください (たとえば、「スカラーを配列から直接減算できます。ベクトルの場合は bsxfun があります」)。
私が彼らに伝えるべき最も重要なことは何ですか?
matlab - 数学からMATLABへの変換->(付録)
私は数学で次のことをしていて、MATLABで使用したいと思っています。試しましたが、間違いがあり、修正できません。MATLABの哲学をまだ理解していないということです。それで、
これは私がしました:
matlab - Matlabのbsxfun()コード
これは何をしますか?
bsxfunなしでこれを行う同等の方法はありますか?
matlab - Matlabでの3次元行列の作成と操作
Matlabでループを回避しようと必死にfor
なっていますが、その方法がわかりません。状況は次のとおりです。
2つのm x n
行列A
とB
2つのベクトルがv
ありw
、長さはd
です。私は外部乗算をしたいA
ので、エントリがである行列v
を取得し、同様にと。m x n x d
(i,j,k)
A_(i,j) * v_k
B
w
m x n x d
その後、結果の行列を追加しmean
、最後の次元に沿ってm x n
行列を取得します。
後半は大丈夫だと思いますが、前半は完全に行き詰まってしまいます。bsxfun
無駄に使ってみました。誰もがこれを行うための効率的な方法を知っていますか?どうもありがとう!
編集:この改訂は、以下の3つの優れた回答の後に行われます。gnoviceは、間違いなく私が尋ねた質問に対する最良の答えを持っています。しかし、私が尋ねるつもりだった質問は、平均を取る前に各エントリを二乗することを含みます。もともとこの部分について言及するのを忘れていました。この煩わしさを考えると、他の両方の答えはうまく機能しますが、コーディングの前に代数を実行するという巧妙なトリックは、今回は役に立ちません。皆さん、助けてくれてありがとう!
matlab - matlabの正規化された問題
84セットのデータがあります。最初のデータセットは次のコードで正規化されています...正規化式は(((N-min)* 2)/(max-min))-1)です。
現在、すべてのデータセットには27列があります。最初のデータセットの元のデータから、各列の最大値と最小値を見つけます。したがって、各列に27の最大値と27の最小値があります。次に、これらの27の最大値と各列に27の最小値を使用します。 1番目のセットデータと2番目から84番目のデータセットを正規化するには...
ただし、b3の回答からの以下のコードは、上記のコードとは異なる結果になります。
コードの何が問題になっているのかわかりますか?
matlab - MATLABバージョン7で同等のpdist2
matlabの2つの行列間のユークリッド距離を計算する必要があります。現在、bsxfunを使用して、以下のように距離を計算しています(コードのスニペットを添付しています):
fea_testのサイズは4754x1024、fea_trainは6800x1024です。彼のforループを使用すると、forの実行に約12分かかりますが、これは高すぎると思います。両方の行列間のユークリッド距離をより速く計算する方法はありますか?
不要なforループを削除することで、実行時間を短縮できると言われました。また、pdist2が計算時間を短縮するのに役立つことも知っていますが、バージョン7のmatlabを使用しているため、pdist2関数がありません。アップグレードはオプションではありません。
どんな助けでも。
よろしく、
バヴィア
matlab - 行列の乗算/除算のための Matlab の 'bsxfun' の類似物はありますか?
リストベクトルに行列のリストを掛ける必要があります。現在、私は for ループでそれをやっています:
for
ループなしでこれを書くことができますか?
matlab - 一般化行列積
私はMATLABにかなり慣れていません。M x K 行列と K x N 行列の通常の行列乗算 -- C = A * B
-- はc_ij = sum(a_ik * b_kj, k = 1:K)
です。c_ij = sum(op(a_ik, b_kj), k = 1:K)
これを単純なバイナリ操作の代わりにしたい場合はどうすればよいop
ですか? これを MATLAB (または組み込み関数) でベクトル化する良い方法はありますか?
編集:これは現在私ができる最善のことです。
matlab - 特定の日付から月を引く
マトリックス内の特定のDateColから月を引く必要があります。コマンドbsxfun(@minus, datevec(date),[0,3,0,0,0,0])
を使用して、指定された日付から3か月を減算していました。このコードにバグがあることがわかります。日付が2011年2月1日の場合、このコードでは、2010年11月1日ではなく、2011年1月1日に移動します。
マット=[100734505; 200 734536; 200 734539]; %Col1はID、Col2は日付
ベクトル化されたアプローチを提案できますか?単一の日付(マトリックス外)の場合、addtodate(d, -3, 'month')
完全に正常に機能します!