function - 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 中定义,因此有没有办法克服这个问题?
解决方案
更安全的方法是使用deff
:
function [f]=monomial(n)
f = deff('z=g(x)','z=x^'+string(n));
endfunction
否则n
可能会被当前范围污染
--> monomial(2)(8)
ans =
64.
推荐阅读
- html - 如何定位元素的左侧、中心和右侧?
- python - Python 3.9 - 使用不同参数调度异步函数的定期调用
- django - Django-filters:显示用于过滤 TextField 的选项列表
- ffmpeg - Computing VMAF Utilizing FFmpeg, Error: Filter libvmaf has an unconnected output
- node.js - 在 WHERE IN 子句中被视为字符串的 NodeJS PostgresSQL 数字数组
- angular - render2依赖注入错误的原因是什么?
- python-3.x - 在 Windows 上运行 rubert 训练时出错
- c++ - 如何创建可以接受 Unix 和 Windows 标头的 C++ API?
- linux - 这两个 vscode 快捷方式的 VIM 等效项是什么?
- python-3.x - 静态变量 Python 的应用