Scilab - 在另一个函数中定义一个函数

Scilab - define a function inside another one

我想定义一个接受输入 n 并返回由 f 定义的函数 f 的函数(x) = x^n.

所以我在Scilab上写了下面这段代码:

function [f]=monomial(n)
    function [z] = g(x)
        z = x^n
    endfunction
    f = g
endfunction

不幸的是,当我计算 monomial(3)(2) 时,我得到 32. 而它应该是 8.

希望有人能指出我在写这个函数时哪里出错了。

有人可以帮我吗?


我清除了所有变量并重新运行代码,它告诉我 n 没有在 g 中定义,因此有没有办法解决这个问题?

更安全的方法是使用 deff :

function [f]=monomial(n)
    f = deff('z=g(x)','z=x^'+string(n));
endfunction

否则 n 可能会被当前范围污染

--> monomial(2)(8)
 ans  =

   64.