# For - While Loop Nested

5 views (last 30 days)
Semih Ates on 28 Jun 2020
Commented: Semih Ates on 28 Jun 2020
Hello everyone;
I try to use this loop;
R = 8.914;
PCO = 0;
for i = [1:250]
T(i) = i+0.1;
deltaG = -287500 + 22.75*T;
while PCO<100;
PCO = PCO + 0.01;
deltaGnew = R * T .* log(PCO);
end
end
But in my workspace I saw that T has only 2 values ([1.1,2.1])
The problem is that : I have T and PCO values. T varies between 1 - 250 and PCO starts 0 to 100. I want to calculate deltaG values of each temperature and deltaGnew values of each temp and PCO. And after that if deltaG = deltaGnew, I want to stop my loops.
Thank you!
Kindest regards,
S.A

madhan ravi on 28 Jun 2020
a?
Semih Ates on 28 Jun 2020
Sorry for that, I edit my code.

madhan ravi on 28 Jun 2020
R = 8.914; % I don't understand why you need a loop though?
PCO = linspace(0, 1e2);
T = linspace(1, 250);
deltaG = -287500 + 22.75*T;
deltaGnew = R * T .* log(PCO);

Semih Ates on 28 Jun 2020
OK thank you, but is there any chance to use for - while loop at same for this ? or any example for that?
madhan ravi on 28 Jun 2020
R = 8.914;
PCO = linspace(0, 1e2);
T = linspace(1, 250);
[deltaG, deltaGnew] = deal(zeros(numel(T), 1));
for k = 1:numel(T)
deltaG(k) = -287500 + 22.75*T(k);
deltaGnew(k) = R * T(k) .* log(PCO(k));
end
Semih Ates on 28 Jun 2020
it works thank you.

KALYAN ACHARJYA on 28 Jun 2020
R = 8.914;
T=linspace(1.1,0.1,250);
deltaG = -287500 + 22.75.*T;
a= %?? % Define it
PCO=linspace(a,0.01,100);
deltaGnew=R*T(1:length(PCO)).*log(PCO);

Semih Ates on 28 Jun 2020
Thank you, it solve my problem. But I want to use for & while loop :/
KALYAN ACHARJYA on 28 Jun 2020
R = 8.914;
T=linspace(1.1,0.1,250);
deltaG = -287500 + 22.75.*T;
PCO=linspace(0:0.01,100);
PCO=linspace(0,0.01,100);
for i=1:length(PCO)
deltaGnew(i)=R*T(i)*log(PCO(i));
end
Semih Ates on 28 Jun 2020
thank you