2

次元 [1,2] の行列を受け取り、次元 [1,136] の行列を返す関数があります。次元 [N,2] の行列もあります。この関数を行列の各行に適用して、最終的に [N,136] 次元の行列を取得したいと考えています。

Matlabでこれを行う方法が完全にわかりません。for ループ ソリューションで十分ですが (この時点ではそれもできません)、Matlab で知る限り、より優れた、より並列化可能な方法があります。

私の現在の試みは次のようになります。

  phi = arrayfun(@(x,y) gaussianBasis([x y])' , trainIn(:,1), trainIn(:,2), 'UniformOutput', false);

ここgaussianBasisで、 はベクトル [136,1] を返す関数trainInで、行列 [N,2] です。phiは [N,136] であるはずですが、これはそれぞれ行列 [1,136] を含む N 個の cell 配列の配列を返します。

助けてくれてありがとう!

4

1 に答える 1

4

cat最初の次元に沿って使用して連結するだけです。

phi = cat(1, phi{:})

これにより、N x 136 マトリックスが得られるはずです

于 2012-11-07T01:12:17.503 に答える