I habe den folgenden Code, in Octave:Wie kann man eine Funktion während der Matrixtransformation verwenden?
% recode y to Y
I = eye(10);
Y = zeros(5000, 10);
for i=1:5000
Y(i, :)= I(y(i), :);
end
y
5000 x 1 und enthält Werte von 1 bis 10 Die gewünschte Ausgangs Y. ist Y
beträgt 5000 x 10 und enthält alle 0s außer A 1 in der Position in der gleichen Zeile von y
angezeigt.
Ich möchte dies ohne eine Schleife für akademische Zwecke tun; d.h. vektorisieren.
Ein 5000 x 1 * 1 x 10 gibt mir eine 5000 x 10 Antwort, aber die 1 x 10 hier muss während der Matrixmultiplikation für jede Zeile ändern, um alle 0 außer der von der "aktuellen" Zeile angegebenen Position zu enthalten von y.
Wie kann ich es tun?
Ich denke, Ihre Frage ist besser für StackOverflow geeignet. In jedem Fall, schau einfach "logische Indexierung"; Das wird dir die Lösung bringen, die du willst. –