【问题标题】:@ in Function definition in Matlab [duplicate]@在Matlab中的函数定义中[重复]
【发布时间】:2019-02-18 04:56:58
【问题描述】:

我刚刚浏览了一段代码,发现了以下行:

other_function(@(t)(xx(t,g)))

其中 other_function,xx 是已定义的函数,g 已定义。

这里是xx的代码

function [val]=xx(x,y)
val=x+y;
end;

所以现在我无法理解@(t)(xx(t,g)) 的含义

【问题讨论】:

  • other_function 中会发生什么?函数xx的句柄传递给other_function
  • 它是这样使用的,因此您不必将g 传递给每个other_function 调用。如果g 应始终输入相同,则此语法将xx(2 个输入的函数)转换为other_function(1 个输入的函数,具有与xx 相同的功能)。

标签: matlab function


【解决方案1】:

它是一个函数句柄。将函数作为参数传递很有用。您可以在MATLAB documentation中找到更多信息

只是一个例子:假设你有一个简单的函数

function y = computeSquare(x)
y = x.^2; 
end

你可以用这种方式计算积分:

q = integral(@computeSquare,0,1);

在您的示例中:other_function 将函数 t 和另一个名为 g 的参数声明为输入参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-06
    相关资源
    最近更新 更多