我需要编写我自己的函数,它的格式为f(x,y)=Integrate(g(x,y,z),z from 0 to inf)
。所以我使用的代码是:matlab函数是一个整数函数
function y=f(x,y)
[email protected](z)exp(-z.^2)./(z.^x).*(z.^2+y.^2).^(x/2);% as a function of x,y and z
y=quadgk(g,0,inf)
,如果我把它像f(x0,y0)
一个值,它的工作原理,但如果我尝试计算像f([1:10],y0)
的东西,那么错误消息说,有什么不对的时间和维度。原则上,我可以使用for循环,但随后我的代码变慢并且需要永久使用。我能从你们那里得到什么帮助吗?或参考?
我试图避免for循环,因为在matlab中使用矩阵计算要比使用for循环快得多。我想知道是否有任何技巧可以利用此功能。
感谢提前任何帮助,
林恩
就你而言,我认为你应该使用for循环。如果你有'x = 1:10',我想它不会超过正常函数的十倍。 – Oli
好吧,如果我为循环做了10次这不是问题,但是我需要将这个函数传递给另一个函数来做一些优化,为了做到这一点,函数f必须能够接受向量输入并生成向量输出... – user1092696