Iオクターブで次のコードを、有する:行列変換を行う際に「関数を使用する」方法
% recode y to Y
I = eye(10);
Y = zeros(5000, 10);
for i=1:5000
Y(i, :)= I(y(i), :);
end
y
は、所望の出力がY. Y
であり、X 1 5000であり、1から10 に値が含まれて5000×10であり、1を除いてすべて0が含まれてい同じ列のy
に示された位置にある。
私はこれをループなしで学業目的で行う必要があります。すなわちベクトル化する。
5000 x 1 * 1 x 10は私に5000 x 10の答えを与えますが、ここで1 x 10は各行が "現在の"行で示される位置を除くすべての0を含む行列乗算の間に変更する必要がありますyの
どうすればいいですか?
あなたの質問は、より適切なStackOverflowに思えると思います。いずれにしても、単に論理的な索引付けを検索してください。これにより、あなたが望むソリューションが得られます。 –