Path: news.mathworks.com!not-for-mail
From: <HIDDEN>
Newsgroups: comp.soft-sys.matlab
Subject: Re: One or more output arguments not assigned during call
Date: Wed, 14 Aug 2013 19:39:21 +0000 (UTC)
Organization: The MathWorks, Inc.
Lines: 114
Message-ID: <kugmd9$l2l$1@newscl01ah.mathworks.com>
References: <ku883j$n4p$1@newscl01ah.mathworks.com> <kudtbu$fr3$1@newscl01ah.mathworks.com>
NNTP-Posting-Host: www-05-blr.mathworks.com
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: newscl01ah.mathworks.com 1376509161 21589 172.30.248.37 (14 Aug 2013 19:39:21 GMT)
X-Complaints-To: news@mathworks.com
NNTP-Posting-Date: Wed, 14 Aug 2013 19:39:21 +0000 (UTC)
Xref: news.mathworks.com comp.soft-sys.matlab:800902

"Steven_Lord" <slord@mathworks.com> wrote in message <kudtbu$fr3$1@newscl01ah.mathworks.com>...
>
>
> "Sanaa " <findingsanaa@yahoo.com> wrote in message
> news:ku883j$n4p$1@newscl01ah.mathworks.com...
> > Hi all,
> > I have a problem when plotting the bifurcation diagram of the
> > fractional-order duffing equation
> > my code for that is
> > function [T, Y]=FODuffing(parameters, orders, TSim, Y0)
> > h=0.01;
> > % number of calculated mesh points:
> > n=round(TSim/h);
> > %orders of derivatives, respectively:
> > q1=orders(1); q2=orders(2); q3=orders(3);
> > % constants of financial system:
> > % mu=parameters(1);
>
> Because this line is commented out, there is NO indication whatsoever that
> tells MATLAB that you intend mu to be a variable in this function's
> workspace. Therefore when MATLAB tries to figure out what mu is on this
> later line:
>
> *snip*
>
> > z(i)=(-mu*y(i-1)-lambda*x(i-1)-b*x(i-1)^3+gama*sin(omega))*h^q3 - memo(z,
> > c3, i);
>
> it looks to see if there is a function named mu. There is, so MATLAB decides
> that this reference to mu must be a call to that function with 0 input
> arguments.
>
> *snip*
>
> I assume this is a separate script file or this code is being run in the
> MATLAB Command Window.
>
> > close all; clear all;
>
> There's no real need to do this, and it will interfere with debugging your
> code because the CLEAR ALL will clear breakpoints.
>
> > for mu=0:0.001:4
>
> This defines the variable mu IN THIS WORKSPACE. The variable mu defined here
> is NOT "visible" to any other workspace. That's the whole point behind
> workspaces; what you do in one workspace generally doesn't affect what
> happens in other workspaces.
>
> > [t, y]=FODuffing([-1 1 0.6 1],[0.95 0.05 1],100, [0 0 0]);
>
> When you move from this workspace into FODuffing's workspace, you lose
> any variables defined in THAT workspace.
>
> *snip*
>
> > %%%%%%%%%%%
> > I get the error
> > ??? One or more output arguments not assigned during call to
> > 'C:\MATLAB7\toolbox\mutools\commands\mu.m (mu)'.
>
> The MU function expects to be called with input arguments; when it is not it
> does not respond correctly.
>
> > Error in ==> FODuffing at 24
> > z(i)=(-mu*y(i-1)-lambda*x(i-1)-b*x(i-1)^3+gama*sin(omega))*h^q3 - memo(z,
> > c3, i);
> >
> > Error in ==> system1 at 3
> > [t, y]=FODuffing([-1 1 0.6 1],[0.95 0.05 1],100, [0 0 0]);
> >
> > I want to loop over mu that's why I didn't specify a value for it in the
> > function file!
>
> Then you need to pass the value of mu from the workspace that contains the
> FOR loop into the workspace of the FODuffing function. The easiest way to do
> that is to pass it as an input by modifying the definition of the function:
>
> function [T, Y]=FODuffing(parameters, orders, TSim, Y0, mu)
> % snip the remainder of the definition of FODuffing
>
> and modifying how you call it:
>
> for mu=0:0.001:4
>     [t, y]=FODuffing([-1 1 0.6 1],[0.95 0.05 1],100, [0 0 0], mu);
> end
>
> > What went wrong please?
>
>
> http://www.mathworks.com/help/matlab/matlab_prog/base-and-function-workspaces.html
>
> --
> Steve Lord
> slord@mathworks.com
> http://www.mathworks.com
Thanks a lot for your valuable comments. I guess the code is running correctly now, however, I have one question concerning the figure I got; it's just a vertical line from the values I specified for mu. when plotting bifurcation diagrams for discrete maps, I should through out some values of x from the plot