0

MATLABで行列演算を行ってから少し経ちましたので、簡単に解けるのであればご容赦ください。

いくつかのNxM行列Aがあり、の列インデックスに対して操作を実行したいと思いますA。ループを使用してこれを行う方法は知っていforますが、MATLABを使用しているので、行列の演算を高速に実行するMATLABの機能を利用したいと思います。

と呼ばれる関数があるとしmyFuncます。ループなしで次のことを行う方法はありますかfor(行列の乗算など):

for i=1:M
    A(:, floor(i*myFunc())) = A(:, i)
4

2 に答える 2

1

これでいい?

A(:,floor([1:M]*myFunc())) = A(:,1:M)

cozあなたのmyFuncもiに依存しているかどうかはわかりません。

于 2013-03-01T17:54:41.743 に答える
1

i*おそらく、次の(1:M).*ように置き換えることができます。

A(:, floor((1:M).*myFunc())) = A(:,1:M)

.*行列の乗算ではなく、要素ごとの乗算を行うことに注意してください。

于 2013-03-01T17:56:25.833 に答える