首页 > 解决方案 > Scilab - 在另一个函数中定义一个函数

问题描述

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

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

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

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

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

有人可以帮我吗?


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

标签: functionscilab

解决方案


更安全的方法是使用deff

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

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

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

   64.

推荐阅读