How to correct this?

tspan = [55. 121.]; % Range for the independent variable
y0 = [467.992; 0.0423866]; % Initial values for the dependent variables
function dYfuncvecdt = ODEfun(t,Yfuncvec);
T = Yfuncvec(1);
X = Yfuncvec(2);
NCp = 2504;
V = 3.265 + 1.854;
Nao = 9.0448;
UA = 35.83;
dH = -590000;
Nbo = 33;
k = 0.00017 * exp(11273 / 1.987 * (1 / 461 - (1 / T)));
Qr = UA * (T - 298);
Theata = Nbo / Nao;
ra = 0 - (k * Nao ^ 2 * (1 - X) * (Theata - (2 * X)) / (V ^ 2));
rate = 0 - ra;
Qg = ra * V * dH;
dTdt = (Qg - Qr) / NCp;
dXdt = (0 - ra) * V / Nao;
dYfuncvecdt = [dTdt; dXdt];
function dYfuncvecdt = ODEfun(t,Yfuncvec);
↑
Error: Function definitions are not permitted in this context.

1 个评论

I exported this solution from polymath. They said that it can be copied directly after exporting.

请先登录,再进行评论。

回答(1 个)

Greg
Greg 2018-6-4
编辑:Greg 2018-6-4

0 个投票

If the first non-comment line is not a function declaration (or a few other options such as classdef), the file is a script. Embedding functions in scripts was introduced in R2016b.
  • If you're running pre-R2016b, you can't do it, period.
  • If you're running R2016b or newer, you have to close each function with an end.

3 个评论

Also, you can't name them both ODEfun.
I'm running R2017a. I just exported this from polymath and they said that the code can be copied directly to the matlab editor.
No idea what polymath is, but I rarely find they said… to be reliable.
As Aakash asked, what exactly are you trying to do? Can you link to or upload this polymath reference?

请先登录,再进行评论。

类别

在 帮助中心 和 File Exchange 中查找有关 Call MATLAB from C 的更多信息

评论:

2018-6-4

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by