Ich habe einen Vektor v
Ich möchte die Funktion myfn
zu ausgewählten Elementen, deren Indizes idx
Ich habe gesehen modifiziere einen Teil eines Vektors in Clojure? und es ist nicht genau das, was ich brauche.
Wie Sie es in MATLAB tun
%Vor%Aktualisiert, weil ich die Frage falsch interpretiert habe.
Hier ist eine andere Lösung:
%Vor% Das heißt, erstellen Sie eine Argumentliste von Index- / Neuwert-Paaren zu assoc
. Ich denke, manges Lösungen sind wahrscheinlich besser.
Ursprüngliche, falsche Lösung
Vergessen Sie nicht, dass der Vektor v
selbst eine Funktion seiner Indizes ist. Also:
oder:
%Vor%oder:
%Vor% Ich bin mir sicher, dass es auch eine sehr clevere Antwort mit juxt
:)
Sie erwähnen "einen [großen] Vektor", also interessieren Sie sich für Leistung? Vielleicht möchten Sie etwas über Transienten herausfinden:
%Vor%Wenn Sie einen Looping-Stil bevorzugen, macht dies das Gleiche:
%Vor%