finding closest values in array

2 Ansichten (letzte 30 Tage)
harley
harley am 6 Aug. 2013
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;

Akzeptierte Antwort

Richard Brown
Richard Brown am 6 Aug. 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);
  1 Kommentar
harley
harley am 6 Aug. 2013
thanks richard, a lot easier than the way i was trying.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Characters and Strings finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by