Function definitions are not permitted in this context??
显示 更早的评论
I have looked at other posts regarding this subject but nothing they suggested seemed to work for me. I seems that MATLAB doesn't like it when you declare variables prior to the function definition so as you can see in my code that is not the case. I am not sure why it's not working. It seems like it should be pretty simple. I am a mere novice with MATLAB so please go easy on me.
function dydt = Problem4(t,y)
dydt = y*t^3-1.5*y;
[t,y] = ode45(@Problem4, [0, 2], 1);
plot(t,y)
3 个评论
Azzi Abdelmalek
2013-9-8
where is your code?
Michael
2013-9-8
Michael
2013-9-8
编辑:Azzi Abdelmalek
2013-9-8
回答(3 个)
Image Analyst
2013-9-8
编辑:Image Analyst
2013-9-8
It seems like Problem4 is trying to call Problem4 inside of itself. Is it your intent to call this recursively? What function do you want to pass in to ode45?
Maybe you want this. I put all of this code below into a single m-file called Problem4.m and it worked:
function Problem4()
[t,y] = ode45(@ConstructEquation, [0, 2], 1);
plot(t,y)
function dydt = ConstructEquation(t,y)
dydt = y*t^3-1.5*y;
Azzi Abdelmalek
2013-9-8
function dydt = Problem4(t,y)
dydt = y*t^3-1.5*y;
% save this function as Problem4.m
In another m file or in Matlab windows command run:
[t,y] = ode45(@Problem4, [0, 2], 1);
plot(t,y)
2 个评论
Michael
2013-9-8
Image Analyst
2013-9-8
No, you don't have to call the function in the command window. It can be all in one single m-file, like I showed.
Arthur
2013-9-8
0 个投票
You cannot define functions in the command window. They have to be in an m-file.
2 个评论
Azzi Abdelmalek
2013-9-8
He said to call a function in the command window, not to define it.
Arthur
2013-9-8
whoops my bad.
类别
在 帮助中心 和 File Exchange 中查找有关 Programming 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!