finding closest values in array
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hello, want to locate a value from an pH array when closest to 4.756 and then locate the corresponding Vb value associated with that pH value. Any help would be appreciated. See last 2 lines.
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
%
pH_Mid_Pt2 = find pH value when closest to 4.756;
Vb_Mid_Pt2 = find corresponding Vb value at pH_Mid_Pt2;
0 comentarios
Respuesta aceptada
Richard Brown
el 6 de Ag. de 2013
If I understand correctly, you want to find the pH value in your array closest to 4.756, and pull this value out, together with the corresponding Vb value. If that's right, this should do the trick.
[~, idx] = min(abs(pH - 4.756));
pH_Mid_Pt2 = pH(idx);
Vb_Mid_Pt2 = Vb(idx);
Más respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!