Filter löschen
Filter löschen

using matlabfunction to declare variables

6 Ansichten (letzte 30 Tage)
kalpana
kalpana am 3 Nov. 2014
Beantwortet: Alan Weiss am 3 Nov. 2014
I have three equations with names 'equn1, equn2, equn3'. Variables in those equations are declared as :
lam = sym('lam', [1 3] ).
To solve those equations, i am writing the code like this :
solu_fsolve = []; value = []; lam(1) = 0; lam(2) = 0; lam(3) = 0;
fh = matlabFunction([equn1;equn2;equn3],'vars',{[ lam(1), lam(2), lam(3)]});
options = optimset('Display','off','TolFun',eps);
[solu_fsolve,value] = fsolve(fh, [ 1,1,1] ,options ) ;
But, when i execute this code , i am getting an error like :
??? Error using ==> sym.matlabFunction>checkVars at 155
Variable names must be valid MATLAB variable names.
Error in ==> sym.matlabFunction at 104
vars = checkVars(funvars,opts);
Can anyone please tell me how to declare the array as variables in matlabfunction?
Please help.
--kalpana

Akzeptierte Antwort

Alan Weiss
Alan Weiss am 3 Nov. 2014
When you execute the first line of code you make lam a symbolic vector:
lam = sym('lam', [1 3] )
lam =
[ lam1, lam2, lam3]
However, you later change those variables to symbolic zeros instead of leaving them as variables.
lam(1) = 0; lam(2) = 0; lam(3) = 0;
Remove that line of code and I expect that matlabFunction will work just fine.
Alan Weiss
MATLAB mathematical toolbox documentation

Weitere Antworten (0)

Kategorien

Mehr zu Symbolic Math Toolbox finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by