From: <HIDDEN>
Newsgroups: comp.soft-sys.matlab
Subject: Re: Index exceeds matrix Dimensions?
Date: Tue, 27 Mar 2012 17:45:21 +0000 (UTC)
Organization: The MathWorks, Inc.
Lines: 18
Message-ID: <jksubh$kth$>
References: <jkshid$42c$>
Reply-To: <HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: 1332870321 21425 (27 Mar 2012 17:45:21 GMT)
NNTP-Posting-Date: Tue, 27 Mar 2012 17:45:21 +0000 (UTC)
X-Newsreader: MATLAB Central Newsreader 1187260
Xref: comp.soft-sys.matlab:762352

"Sanaa" wrote in message <jkshid$42c$>...
> ......
>   n= 200;
> ru = (3.0/n):(3.0/n):4;
> for m = 1:3*n
>       x(m)=bifurcationthird(m/3,ru(m));
> end
- - - - - - - - -
  In the line

 ru = (3.0/n):(3.0/n):4;

you generate the array 'ru' containing only 266 elements, but the index m in the for-loop gets as high as m = 600.  There is no 600th element of 'ru'.  I think you may have meant to have ru = 4/(3*n):4/(3*n):4.

  You should realize that binary floating point numbers, which are what matlab uses for 'double', cannot represent 1/3 exactly, and that means that you are "skating on thin ice" when you write your code as you have.  For example if you were to add up 1/3 six times and then multiply the sum by three, you would not get an exact six for an answer due to round off errors.

Roger Stafford