Aşağıdaki kodu anlamıyorum anonim fonksiyon: Bir önceki bağlantısındanSorun anlama
rect2rng = @(pos,len)ceil(pos):(ceil(pos)+len-1);
:
Aşağıdaki kodu anlamıyorum anonim fonksiyon: Bir önceki bağlantısındanSorun anlama
rect2rng = @(pos,len)ceil(pos):(ceil(pos)+len-1);
:
Bir anonymous function bir işlev tanımlama kısa el yoludur . Giriş argümanlarını kabul eder (pos
ve len
) ve bir sonuç üretir.
genel biçimi şöyledir:
func = @(input,arguments)some_action(input, arguments)
Bu giriş argümanlar
value1 = 1;
value2 = 2;
output = func(value1, value2)
uzun ileterek func
denilen bir anonim işlev oluşturur ve daha sonra (tıpkı diğer işlev gibi) kullanılabilir Yukarıdaki örnek yukarıdaki form işlevi eşdeğeri:
Yani bu düşünceyle, biz bu konuda dayalı normal bir fonksiyonu
function output = rect2rng(pos, len)
output = ceil(pos):(ceil(pos) + len-1);
end
içine söz konusu anonim işlevini dökümünü alabilirsiniz, bu ceil
kullanarak en yakın tam sayıya pos
yuvarlar ve sonra uzunluğu bir dizi oluşturur Bu yuvarlanmış değer olarak başlayan len
.
Bazı test girişlerini iletirsek, bunu görüyoruz.
rect2rng(1.5, 3)
%// [2 3 4]
rect2rng(1, 3)
%// [1 2 3]
rect2rng(10, 5)
%// [10 11 12 13 14]