Matlab 了解fminunc参数和匿名函数、函数处理程序

Matlab 了解fminunc参数和匿名函数、函数处理程序,matlab,Matlab,请容忍我。问题在最后。我试图找出fminunc的不同叫法 这个问题来源于Andrew Ng的Coursera机器学习课程第3周的材料。 我不想回答这个问题 我正在努力理解这个论点的意义 @(t) ( costFunction(t, X, y) ) 用户wolfie将其显示为一个缩短版本。有人能解释为什么表达式本身必须是这样的吗?在视频讲座中,他像这样运行函数 [optTheta, functionVal, exitFlag] = fminunc(@costFunction, initialTh

请容忍我。问题在最后。我试图找出fminunc的不同叫法

这个问题来源于Andrew Ng的Coursera机器学习课程第3周的材料。 我不想回答这个问题

我正在努力理解这个论点的意义

@(t) ( costFunction(t, X, y) )
用户wolfie将其显示为一个缩短版本。有人能解释为什么表达式本身必须是这样的吗?在视频讲座中,他像这样运行函数

[optTheta, functionVal, exitFlag] = fminunc(@costFunction, initialTheta, options)
其中
costFunction
程序文件的输入和输出如下所示:

function [jVal, gradient] = costFunction(theta)
提供的练习代码具有此版本的函数:
成本函数(θ,X,y)

在第二种情况下,没有匿名函数,为什么不调用fminunc,这就是为什么它被称为:

[theta,cost]=fminunc(@(t)(costFunction(t,X,y)),初始θ,选项)

而不是作为:


[theta,cost]=fminunc(@costFunction,initial_theta,options)

成本函数应具有要优化的参数作为输入,并返回要最小化的函数值。如果成本函数需要输入待优化参数以外的其他参数,匿名函数表单将执行以下操作:

funHandle = @(t) ( costFunction(t, X, y) );
这允许您传递额外的输入X和y,除了优化t。你可以查一下
从Mathworks获取更多信息。

我编辑了这个问题,因为视频讲座中显示的显然是成本函数,仅以θ为参数,但练习中提供的是成本函数(θ,X,y)。你的回答仍然为我指明了正确的方向,我发现它仍然是正确的。解算器fminunc只接受一个参数,但我们有一个接受多个参数的函数,因此我们定义了一个匿名函数,它只接受一个参数t,我们希望使用解算器对其进行优化。