我不明白以下代码:
rect2rng = @(pos,len)ceil(pos):(ceil(pos)+len-1);
从上一个链接:
匿名函数是定义函数的一种简写方式。它接受输入参数 (pos
和len
) 并产生结果。
一般格式为:
func = @(input,arguments)some_action(input, arguments)
这将创建一个名为的匿名函数func
,然后可以通过向其传递输入参数来使用(就像任何其他函数一样)
value1 = 1;
value2 = 2;
output = func(value1, value2)
与上述示例等效的长格式函数将是:
function output = func(input, arguments)
output = some_action(input, arguments);
end
因此,考虑到这一点,我们可以将您问题中的匿名函数分解为普通函数
function output = rect2rng(pos, len)
output = ceil(pos):(ceil(pos) + len-1);
end
因此,基于此,它pos
使用四舍五入到最接近的整数ceil
,然后创建一个长度数组,len
从这个四舍五入的值开始。
因此,如果我们将一些测试输入传递给它,我们就可以看到它在起作用。
rect2rng(1.5, 3)
%// [2 3 4]
rect2rng(1, 3)
%// [1 2 3]
rect2rng(10, 5)
%// [10 11 12 13 14]