I in Matrix Welt kamen von Schleifen Welt (C, usw)schleifenlose Funktion ruft Vektor/Matrix-Elemente in Matlab/Octave
Ich mag würde, eine Funktion für jedes einzelne Mitglied einer Vektor/Matrix nennen, und gebe den resultierenden Vektor/die Matrix zurück.
Dies ist, wie ich es zur Zeit:
function retval = gauss(v, a, b, c)
for i = 1:length(v)
retval(i) = a*(e^(-(v(i)-b)*(v(i)-b)/(2*c*c)));
endfor
endfunction
Beispiel Nutzung:
octave:47> d=[1:1000];
octave:48> mycurve=gauss(d, 1, 500, 100);
nun alle Ratschläge auf MATLAB/Octave sagt: STOP, wenn Sie sich Schleifen und denken Sie an eine Verwendung fangen besserer Weg.
Also, meine Frage: Kann man eine Funktion auf jedem Mitglied eines Vektors/Matrix aufrufen und das Ergebnis in einem neuen Vektor/Matrix auf einmal ohne explizite Schleifen zurückgeben?
Das heißt ich für so etwas suchen:
function retval = newfun(v)
retval = 42*(v^23);
endfunction
Vielleicht ist es nur syntaktischer Zucker, das ist alles, würde aber immer noch nützlich sein, zu wissen.
Wow, danke für die schnelle Antwort Jungs! Schön, etwas Neues zu lernen :) – Sint