Matlab:如何广播向量的Hessian推导?

Matlab:如何广播向量的Hessian推导?,matlab,Matlab,在Matlab中,可以使用Hessian(x,v)得到Hessian矩阵,其中x是标量函数,v是向量,输出是矩阵 但如何将Hessian从向量函数转换为张量或叠加Hessian 比如说 输入:[x1x2x3,…xn] 输出:[Hessian(x1);Hesian(x2);…;Hessian(xn)] 显然,通过使用循环可以轻松完成: for i=1:n Hess = [Hess; hessian(x(n), x)] end 但如何才能更有效地工作呢?就像Python中的广播方式一样,T

在Matlab中,可以使用
Hessian(x,v)
得到Hessian矩阵,其中
x
是标量函数,
v
是向量,输出是矩阵

但如何将Hessian从向量函数转换为张量或叠加Hessian

比如说

输入:
[x1x2x3,…xn]

输出:
[Hessian(x1);Hesian(x2);…;Hessian(xn)]

显然,通过使用循环可以轻松完成:

for i=1:n
    Hess = [Hess; hessian(x(n), x)]
end

但如何才能更有效地工作呢?就像Python中的广播方式一样,Tensorflow?

我没有要测试的
hessian
,但我想您可能可以使用{:}作为标量函数矩阵,类似于{hessian(x{:},x)}。它可能不起作用,但可能会给你一个方向。因为
hessian
要求第一个输入参数是标量,我认为你不能做任何比你建议的循环更有效的事情。我没有
hessian
要测试,但我想你可能可以使用{:}作为标量函数矩阵,类似于{hessian(x{:},x)}的东西。它可能不起作用,但可能会给你一个方向。因为
hessian
要求第一个输入参数是标量,我认为你不能做任何比你建议的循环更有效的事情。