Errors in Menu program

2 次查看(过去 30 天)
Oliver
Oliver 2011-12-22
Hi all,
I'm a newbie to Matlab and wrote a program using menu as follows:
*eapplication.m*
choice = eoption;
while choice ~= 4
switch choice
case 1
explaine;
case 2
limite;
case 3
x = input('Please enter a value for x: ');
expfn(x);
end
choice = eoption;
end
*eoption.m*
choice = menu('Choose an e option', 'Explanation', 'Limit', ... 'Exponential function', 'Exit Program');
while choice == 0
disp('Error - please choose one option.')
choice = menu('Choose an e option', 'Explanation', 'Limit', ... 'Exponential function', 'Exit Program'); end
*It gave me an error: ??? Attempt to execute SCRIPT eoption as a function: C:\Documents and Settings\Olive\My Documents\MATLAB\eoption.m
Error in ==> eapplication at 1 choice = eoption;*
Could you please shed some lights?
Thanks heaps.
Oliver.

采纳的回答

Matt Tearle
Matt Tearle 2011-12-22
Pretty much what it says. The line choice = eoption; implies that eoption is a function call (because it is asking for an output, to be assigned to choice). But eoption is a script, not a function.
The difference is in how variables are managed. Scripts work with the base MATLAB workspace. Functions use local workspaces, so variables are local. So your options are:
  1. Turn eoption into a function by adding the line function choice = eoption at the beginning.
  2. Leave eoption as a script and inherit choice from the base workspace. Hence, change the line choice = eoption; (in eapplication) to just eoption;
  2 个评论
Oliver
Oliver 2011-12-22
Thank you so much Matt. You're wonderful. Can you recommend good books for me? I've got Matlab: a practical introduction to programming and problem solving and Matlab programming for Engineers. Both have errors.
Matt Tearle
Matt Tearle 2011-12-22
There are a lot of books out there, as well as other resources. Are you in academia or industry? And you're in engineering (or did you just happen to have an engineering MATLAB book)?
http://www.mathworks.com/support/books/index_by_categorytitle.html?category=17&sortby=title

请先登录,再进行评论。

更多回答(1 个)

Jose Jeremias Caballero
Hello
clear all
clc
choice = menu('Choose a opcion','explaine','limite','expfun','exit of menu');
switch choice
case 1
explaine='matlab';
display(explaine);
case 2
syms x
limit((x-2)/(x^2-4),2)
case 3
x = input('Please enter a value for x: ');
expfn=inline('sin(x)+5');
expfn(x)
otherwise
display('thanks');
end

类别

Help CenterFile Exchange 中查找有关 Get Started with MuPAD 的更多信息

标签

尚未输入任何标签。

Community Treasure Hunt

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

Start Hunting!

Translated by