【发布时间】:2018-06-10 18:32:23
【问题描述】:
我的教授。在进行 ODE 时编写了两个代码
function xdot= code(t,x);
A=[-.5 0; 1 0];
B=[1 ; 0];
K=[1.5 1];
U=-K*x;
xdot=A*x+B*U; `
第二个是
[t,x]=ode23('code',[0 10],[1 1 ]');
figure(1);
plot(t,x);
grid
我不知道他为什么这样做? 这就是我想要做的。这似乎给出了很多错误。
function xdot= code3(t,x)
A=[-.5 0; 1 0];
B=[1 ; 0];
K=[1.5 1];
tspan=[0 10];
y0=[1 1];
U=-K*x;
[t,x]=ode23(@(t,x),U=-K*x;,tspan,y0);
xdot=A*x+B*U;
figure(1);
plot(t,x);
grid
代码3 错误:文件:code3.m 行:8 列:19 表达式或语句不正确——可能是不平衡的 (、{ 或 [.
这段代码要求的是形成一个开环。 A B 是变量 K 被计算出来,模型是 U 。这两个代码在单独的脚本文件中并且第二个代码运行时,输出是所需的。我试图合并两个脚本文件,但我真的无法得到它。另外,我不知道代码是如何工作的?
【问题讨论】:
-
我认为这是该行中的匿名函数(
x)之后的逗号)。尝试将其移至另一行,例如 here。 -
你试图在匿名函数之后在 ode23 中声明一个语句。
-
不确定您要做什么,但这不是有效的 MATLAB 语法。如果您需要帮助,请在此处解释您要执行的操作。是否只是避免将
code函数放在单独的文件中? -
error 是因为
U=-K*x;中的分号(过早终止该行),但是该行还有其他语法问题(您不应该有@(t,x)之后的逗号,并且您的函数不依赖于t)。 问题尚不清楚,因为正如 Cris 所说,您还没有说明您实际上要做什么。 -
所要求的是在线性模型中形成一个开环。当两个代码(上面的代码)运行时,输出符合要求。但是当我试图在一个脚本文件中编写代码时,我无法做到。 -谢谢!
标签: matlab matlab-guide ode