displaying values in command window

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 comentarios

David Sanchez
David Sanchez el 6 de Ag. de 2013
use the {}Code button to properly present your code, please.
Jan
Jan el 6 de Ag. de 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.

Iniciar sesión para comentar.

 Respuesta aceptada

kedija
kedija el 6 de Ag. de 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 comentarios

harley
harley el 6 de Ag. de 2013
thanks what does the unit16 actual mean?
David Sanchez
David Sanchez el 6 de Ag. de 2013
It transforms the variable into Unsigned INTeger of 16 bits
thanks kedija, im trying to get it to return the corresponding pH value when;
Vb = Vb_env*0.5
both these values are in column 5000. I get a pH value of 3.1646 which corresponds to column 250, which is the value obtained from;
Vb_Mid_Pt1 = uint16(Vb_ev)*0.5;
The pH should be around 4.756. I think my problem lies with the above expression.
thanks in advance.
kedija
kedija el 6 de Ag. de 2013
Editada: kedija el 6 de Ag. de 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.

Iniciar sesión para comentar.

Más respuestas (1)

David Sanchez
David Sanchez el 6 de Ag. de 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

Categorías

Etiquetas

Preguntada:

el 6 de Ag. de 2013

Community Treasure Hunt

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

Start Hunting!

Translated by