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

时间:2017-10-27 09:59:17

标签: matlab function function-handle tilde

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

pd_controller(~, s, s_des, params)

我四处寻找,但无法找到向我解释这个问题以及它是如何工作的。

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

controlhandle(t, s, s_des, params)

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

那么,这是什么意思?我可以访问~后面的任何内容吗?

此外: 我找到了一个例子,但另一个例子。我们使用function = f(a,b)调用了一个名为f(~, b)的函数,其中ab已在函数内声明。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:4)

这意味着您不需要在此函数调用中传递此参数。此外,您也可以在某些功能的输出中使用它。例如:

A = [1 4 2 2 41];
[~, B] = sort(A);

这意味着您不需要第二个输出,您可以忽略它。

在您的情况下,当没有为第一个参数t发送任何值时,该函数可能在其计算中对t的默认值起作用。

此外,您可以在matlab documentation中找到更多相关信息。 我应该提到this post作为答案存在,但它可能会在这里。