【发布时间】:2015-12-28 13:19:55
【问题描述】:
我正在编写一个函数来计算 p 的值。
公式为p=r*q + pa。 pa 值是我从 ode45 函数获得的列向量。我必须更改 q w.r.t 时间的值,即从 0 秒到 1 秒 q=500,从 1 秒到 2 秒 q=0。
我写了这个程序:
function [p] = fom(t,pa)
r=0.007;
tin=1;
t=0:0.01:2;
if t <=tin
q = 600;
else t <= 2
q = 0;
end
[t,pa]=ode45('FOM1',[t],[0])
for i=[palv]
p=(r*q)+(i);
end
end
问题是我在输出 1 秒后得到正确的值,但在 1 秒之前 q 为 0 值没有改变。 这个 if 语句正确吗?
【问题讨论】:
-
你的代码有很多错误。您有两个输入,但您没有使用它们,
(t,pa)。您定义 t 和 pa 但不使用变量。palv是什么?
标签: matlab if-statement for-loop