for i = 1:19
P(i) = [2.8*10^-4:0.1*10^-4:4.2*10^-4]
I cannot figure out how to fix my loop

3 Comments

Jacob
Jacob on 25 Feb 2014
for i = 1:15*****
From what you're showing, you don't need (or want) a loop at all.
doc colon
and read the "Getting Started" section in help on manipulating arrays in Matlab to begin to get the picture.
P = [2.8e-4:1e-5:4.2e-4];
and
P = [2.8*10^-4:0.1*10^-4:4.2*10^-4];
return identical results.

Sign in to comment.

 Accepted Answer

Rick Rosson
Rick Rosson on 26 Feb 2014
Edited: Rick Rosson on 26 Feb 2014
No need for a for loop, no need for square brackets. Also, might as well pull common scale factor out using distributive property:
P = (2.8:0.1:4.2)*1e-4;

1 Comment

Thanks for your help, but I apologize I did not put the entire code on the question yesterday.
for i = 1:15
P = 2.8e-4:.1e-4:4.2e-4; ???
Kw(i) = 10^-14;
Kh(i) = 10^-1.46;
Ka1(i) = 10^-6.3;
Ka2(i) = 10^-10.3;
func(i) = @(ph,P)Kw/(10^-ph)+(Ka1*Kh*P)/(10^-ph)+(2*Ka1*Ka2*Kh*P)/(10^-ph)^2-(10^-ph);
ph(i) =7;
xl(i) = -20;
xu(i) = 20;
es(i) = 0.1;
[ phout(i), iter(i) ] = bisect( func,xl,xu,es,P )
end

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Tags

Asked:

on 25 Feb 2014

Commented:

on 26 Feb 2014

Community Treasure Hunt

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

Start Hunting!