ich nicht den folgenden Code verstehen:Schwierigkeiten zu verstehen, eine anonyme Funktion
rect2rng = @(pos,len)ceil(pos):(ceil(pos)+len-1);
Von diesem Link:
ich nicht den folgenden Code verstehen:Schwierigkeiten zu verstehen, eine anonyme Funktion
rect2rng = @(pos,len)ceil(pos):(ceil(pos)+len-1);
Von diesem Link:
Ein anonymous function ist ein kurzer Hand Weg, um eine Funktion zu definieren, . Es akzeptiert Eingabeargumente (pos
und len
) und erzeugt ein Ergebnis.
Das allgemeine Format ist:
func = @(input,arguments)some_action(input, arguments)
Diese eine anonyme Funktion func
genannt erstellt und kann dann verwendet werden (wie jede andere Funktion) durch Eingabeargumente
value1 = 1;
value2 = 2;
output = func(value1, value2)
Die langfris vorbei Formfunktion Äquivalent über dem obigen Beispiel wäre:
function output = func(input, arguments)
output = some_action(input, arguments);
end
Also mit diesem Hintergrund können wir die anonyme Funktion in Ihrer Frage in eine normale Funktion
function output = rect2rng(pos, len)
output = ceil(pos):(ceil(pos) + len-1);
end
So auf dieser Basis brechen, rundet es pos
bis zur nächsten ganzen Zahl ceil
mit und erstellt dann eine Reihe von Länge len
beginnend als dieser gerundete Wert.
Also, wenn wir einige Testeingaben übergeben, können wir es in Aktion sehen.
rect2rng(1.5, 3)
%// [2 3 4]
rect2rng(1, 3)
%// [1 2 3]
rect2rng(10, 5)
%// [10 11 12 13 14]