我正在做另一个课程,这次是空中机器人。我必须使用matlab ode45
(普通差异方程)编程pd控制器。并且必须包含此代码的文件调用如下:
pd_controller(~, s, s_des, params)
我四处寻找,但无法找到向我解释这个问题以及它是如何工作的。
在主程序中,使用时间变量调用函数,我需要ODE:
controlhandle(t, s, s_des, params)
此控制句柄是pd_controller的函数处理程序。
那么,这是什么意思?我可以访问~
后面的任何内容吗?
此外:
我找到了一个例子,但另一个例子。我们使用function = f(a,b)
调用了一个名为f(~, b)
的函数,其中a
和b
已在函数内声明。
答案 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作为答案存在,但它可能会在这里。