Calling functions

2 Ansichten (letzte 30 Tage)
Richard
Richard am 19 Jan. 2012
I have written a MATLAB code say myfun.m which first line is
function y = myfun(x)
Now I want to call it in another code I am writing. I have 2 values x1 and x2 and I want my present code to compare myfun(x1) and myfun(x2) such that if myfun(x1) > myfun(x2) then it does something.
I tried writing
if (myfun(x1)>myfun(x2))
...
But MATLAB says
??? Output argument "y" (and maybe others) not assigned during
call to "/Users/user/Documents/MATLAB/compare.m>myfun".
What should I do?
Thanks.

Antworten (2)

the cyclist
the cyclist am 19 Jan. 2012
This works for me:
x1 = 2;
x2 = 1;
if myfun(x1) > myfun(x2)
disp('myfun(x1) is greater than myfun(x2)')
else
disp('myfun(x1) is not greater than myfun(x2)')
end
where myfun.m is:
function y = myfun(x)
y = x.^2;
end

Jan
Jan am 19 Jan. 2012
The error message means, that for some branchs of the program myfun the output y is not defined. You can use the debugger to let Martlab stop, when the problem occurs:
dbstop if error
Then you can investigate the current calling stack and values of the variables.

Kategorien

Mehr zu Function Creation finden Sie in Help Center und File Exchange

Tags

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by