[英]MATLAB: How do I pass a parameter to a function?
I have the following function: 我有以下功能:
function ypdiff = ypdiff(t,y)
a = 0.01;
b = 0.1;
ypdiff(1) = -a*y(1)*y(2);
ypdiff(2) = b*y(1)*y(2)-b*y(2);
ypdiff(3) = b*y(2);
ypdiff = [ypdiff(1) ypdiff(2) ypdiff(3)]';
If I want to solve this, I would call the ode45 function as follows: 如果我想解决这个问题,我会调用ode45函数,如下所示:
[t y] = ode45(@ypdiff, [to tf], yo);
But if I want to pass a parameter to this function, how would I use the ode45 function? 但是,如果我想将参数传递给此函数,我将如何使用ode45函数? Specifically, I am trying for the following formulation: 具体来说,我正在尝试以下配方:
function ypdiff = ypdiff(t,y,u)
a = 0.01;
b = 0.1;
ypdiff(1) = -a*u*y(1)*y(2);
ypdiff(2) = b*u*y(1)*y(2)-b*y(2);
ypdiff(3) = b*u*y(2);
ypdiff = [ypdiff(1) ypdiff(2) ypdiff(3)]';
You can use an anonymous function in matlab (similar to lambda functions in other languages): 您可以在matlab中使用匿名函数 (类似于其他语言中的lambda函数):
u = 1.2;
[t y] = ode45(@(t, y) ypdiff(t, y, u), [to tf], yo);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.