如果我将匿名函数传递给arrayfun
如下:
arrayfun(@(x)sprintf('%.2g\\pi', x/pi), [0 6 7 8], 'uni', 0)
我得到以下结果:
ans =
'0\pi' '1.9\pi' '2.2\pi' '2.5\pi'
但是,如果我声明一个单独的函数:
function y = sprint_func_0(x)
sprintf('%.2g\\pi', x/pi)
end
并将其传递给arrayfun
:
arrayfun(@(x)sprint_func_0(x), [0 6 7 8], 'uni', 0)
结果是:
ans =
0\pi
ans =
1.9\pi
ans =
2.2\pi
ans =
2.5\pi
为什么我在第一种情况下得到一个输出,而在第二种情况下得到许多输出?这可能很愚蠢,但我无法在任何地方找到答案。