这个函数用什么意思?(例如function = f(〜,x,y))

And*_* K. 2 matlab function tilde function-handle

我正在做另一个课程,这次是空中机器人.我必须使用matlab ode45(普通差异方程)编程pd控制器.并且必须包含此代码的文件调用如下:

pd_controller(~, s, s_des, params)
Run Code Online (Sandbox Code Playgroud)

我四处搜索,但找不到向我解释这个问题以及它是如何工作的.

在主程序中,使用时间变量调用函数,我需要为我的ODE:

controlhandle(t, s, s_des, params)
Run Code Online (Sandbox Code Playgroud)

此控制句柄是pd_controller的函数处理程序.

那么这是什么意思?我可以访问背后的内容~吗?

此外:我找到了一个例子,但另一个例子.一个函数,让我们调用它function = f(a,b),f(~, b)在函数中声明了where abhas.

Wol*_*fie 6

该符号称为代字号,表示您忽略该输入参数.

请参阅此处的文档:https://mathworks.com/help/matlab/matlab_prog/ignore-function-inputs.html

在你的情况下,函数controlhandle不会传递给t变量,并且可能(应该)对此进行一些检查,t如果没有给出,则可能是默认值.


这与输出参数的作用相同,例如,如果您希望数组中的max 的索引,而不是max本身的索引,则可以使用

a = [pi, 3.6, 1];
[~, idx] = max(a); % idx = 2, we don't know what the max value is
Run Code Online (Sandbox Code Playgroud)