displaying values in command window
9 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
hi, trying to display some values but am not sure how to go about it, this is a pH array, Vb is volume of base added. What i am trying to do is display the midpoint to equivalence which is the half of Vb_ev and then display the corresponding pH value at midpoint, which i know is approx 4.756. see on from line 6 from the bottom.
format short
Kw = 1e-14;
Ka = 1.755388e-5;
pKa = 4.756;
%
Ca = 0.5;
Cb = 0.1;
Va = 100;
Vb = 0.05:0.05:2000;
Ma = (Ca * Va) / 1000;
Mb = (Cb .* Vb) ./ 1000;
for i = 1:length(Mb)
M_excess = Ma - Mb(i);
if abs(M_excess)<eps
Hplus = Ka * ((Ma_final * 0.999999) ./ Mb_final);
Vb_ev = Vb(i);
pH_ev = pH(end);
elseif M_excess > 0
Ma_final = (M_excess * 1000) ./ (Va + Vb(i));
Mb_final = (Mb(i) * 1000) ./ (Va + Vb(i));
Hplus = Ka * (Ma_final ./ Mb_final);
elseif M_excess < 0
OH = (M_excess * 1000 * (-1)) ./ (Va + Vb(i));
Hplus = Kw ./ OH;
end
pH(i) = -log10(Hplus);
end
%
Vb_Mid_Pt1 = (Vb_ev)*0.5;
pH_Mid_Pt1 = i want to display pH at Vb_Mid_Pt1;
disp('The Volume is, mL:')
disp(Vb_Mid_Pt1)
disp('The pH is:')
disp(pH_Mid_Pt1)
2 Commenti
Jan
il 6 Ago 2013
"No luck" is a not a good description of the problem and of what you actually want. The less the readers have to guess, the more likely is a matching answer.
Risposta accettata
kedija
il 6 Ago 2013
the reason you are getting such error is the index Vb_Mid_Pt1 is not integer. if u cast that it works fine. here you go
format short
Kw = 1e-14;
Ka = 1.755388e-5;
pKa = 4.756;
%
Ca = 0.5;
Cb = 0.1;
Va = 100;
Vb = 0.05:0.05:2000;
Ma = (Ca * Va) / 1000;
Mb = (Cb .* Vb) ./ 1000;
for i = 1:length(Mb)
M_excess = Ma - Mb(i);
if abs(M_excess)<eps
Hplus = Ka * ((Ma_final * 0.999999) ./ Mb_final);
Vb_ev = Vb(i);
pH_ev = pH(end);
elseif M_excess > 0
Ma_final = (M_excess * 1000) ./ (Va + Vb(i));
Mb_final = (Mb(i) * 1000) ./ (Va + Vb(i));
Hplus = Ka * (Ma_final ./ Mb_final);
elseif M_excess < 0
OH = (M_excess * 1000 * (-1)) ./ (Va + Vb(i));
Hplus = Kw ./ OH;
end
pH(i) = -log10(Hplus);
end
%
Vb_Mid_Pt1 = uint16(Vb_ev)*0.5;
pH_Mid_Pt1 = pH(Vb_Mid_Pt1);%i want to display pH at Vb_Mid_Pt1;
disp('The Volume is, mL:')
disp(Vb_Mid_Pt1)
disp('The pH is:')
disp(pH_Mid_Pt1)
4 Commenti
kedija
il 6 Ago 2013
Modificato: kedija
il 6 Ago 2013
I don't really know what your code does but Vb_ev is 500 and it is giving you the 250th value. if you want to display the 5000 value change ur code somehow to correct ur index. pH(5000) is 4.7556 .... I think you are messing something in the index.
Più risposte (1)
David Sanchez
il 6 Ago 2013
I hope this is what you want to do:
my_var = 3;
fprintf('The value of my variable is : %g \n' ,my_var);
OUTPUT:
The value of my variable is : 3
0 Commenti
Vedere anche
Categorie
Scopri di più su Annotations in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!