nx1行列を受け入れるmatlabの関数があります。
nx2dimsの行列Xがあります
Xのすべての行が要素として使用される関数に行列Xを送信するにはどうすればよいですか?
私が正しく理解していれば、次のようなことをしなければなりません
for i=1:size(X,1)
f(X(i,:)');
end
つまり、各行をf
順番に関数に渡し、列ベクトルとして転置します。
代わりに行を線形化したい場合X
は、次の操作を行う必要があります。
Xlin = reshape(X',numel(X),1);
f(Xlin);
行列のインデックス付けの情報と例については、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
。