【问题标题】:What does a function with this ~ mean? (e.g. function=f(~, x, y))带有这个〜的功能是什么意思? (例如函数=f(~,x,y))
【发布时间】:2018-04-08 21:41:29
【问题描述】:

我正在做另一个课程作业,这次是使用空中机器人。我必须使用 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 已在函数内部声明。

【问题讨论】:

  • Matlab 的帮助也适用于操作员:help ~

标签: matlab function function-handle tilde


【解决方案1】:

该符号称为波浪号,表示您忽略了该输入参数。

在此处查看文档:https://mathworks.com/help/matlab/matlab_prog/ignore-function-inputs.html

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


这与输出参数相同,例如,如果您想要数组中最大值的 索引,而不是最大值本身,则可以使用

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

【讨论】:

    【解决方案2】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2023-03-09
      • 2018-11-24
      • 2023-01-07
      • 1970-01-01
      • 2014-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多