# 'Index exceeds matrix dimensions' error

1 view (last 30 days)

Show older comments

Hi, I'm trying to write an iteration program that runs a while loop until the variable 'theta' is almost the same as the output x (within a certain accuracy). I keep getting this error, but when I try to change the code to run, it only runs for the first loop. Can anyone help? My code is below (i've been using 0.01 as thetaInitial because i know this is pretty close to the correct answer)

function x=iteration(thetaInitial)

theta(1)=thetaInitial;

x(1)=0.0248;

error=1e-8;

Re=10000;

i=1;

while abs(x(i)-theta(i))>error

x(i)=(((6.25*log(2))+1.5)*log(Re*(theta(i)^0.5))+0.09)^-1;

i=i+1;

end

x=x(1:i+1);

plot(x)

[x(end) i]

##### 0 Comments

### Accepted Answer

Moe_2015
on 12 Jul 2017

##### 1 Comment

Moe_2015
on 12 Jul 2017

So something like this (note: set theta(i) to whatever it should be):

function x=iteration(thetaInitial)

theta(1)=thetaInitial;

x(1)=0.0248;

error=1e-8;

Re=10000;

i=1;

while abs(x(i)-theta(i))>error

i=i+1;

theta(i) = 0; %set this to whatever it is supposed to be

x(i)=(((6.25*log(2))+1.5)*log(Re*(theta(i)^0.5))+0.09)^-1;

end

x=x(1:i); % this line isn't really necessary but if you want it this is what it should be

plot(x)

[x(end) i]

### More Answers (0)

### See Also

### Categories

### Community Treasure Hunt

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

Start Hunting!