Errors in Menu program

2 Ansichten (letzte 30 Tage)
Oliver
Oliver am 22 Dez. 2011
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.

Akzeptierte Antwort

Matt Tearle
Matt Tearle am 22 Dez. 2011
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 Kommentare
Oliver
Oliver am 22 Dez. 2011
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 am 22 Dez. 2011
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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Jose Jeremias Caballero
Jose Jeremias Caballero am 22 Dez. 2011
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

Kategorien

Mehr zu Get Started with MuPAD finden Sie in Help Center und File Exchange

Tags

Noch keine Tags eingegeben.

Community Treasure Hunt

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

Start Hunting!

Translated by