0

nx1行列を受け入れるmatlabの関数があります。

nx2dimsの行列Xがあります

Xのすべての行が要素として使用される関数に行列Xを送信するにはどうすればよいですか?

4

2 に答える 2

1

私が正しく理解していれば、次のようなことをしなければなりません

for i=1:size(X,1)

  f(X(i,:)');

end

つまり、各行をf順番に関数に渡し、列ベクトルとして転置します。

代わりに行を線形化したい場合Xは、次の操作を行う必要があります。

Xlin = reshape(X',numel(X),1);
f(Xlin);
于 2012-06-11T10:38:44.533 に答える
1

行列のインデックス付けの情報と例については、MathWorks Web サイトのMATLABの記事でこの行列のインデックス付けを参照してください。マトリックスから行を選択するには、次のようにします。

>> m = rand(5, 2)

m =

    0.8147    0.0975
    0.9058    0.2785
    0.1270    0.5469
    0.9134    0.9575
    0.6324    0.9649

>> m(1,:)        

ans =

    0.8147    0.0975

>> m(end,:)      

ans =

    0.6324    0.9649

行列の最初のインデックスはに対応し、2 番目のインデックスは列に対応します。ここでは:、2 番目のインデックスとして、適切な行のすべての列が選択されます。関数funcと上記の行列がある場合、次のようにmの各行を に渡すことができmます。func

for i = 1:length(m)
    func(m(1,:)')
end

の各行を配列、つまり行ベクトルではなく列ベクトルに変換する転置に注意してmください2x1

于 2012-06-11T10:45:11.603 に答える