MATLAB Storing Iteration Results in Matlab

  • Thread starter Thread starter adeeyo
  • Start date Start date
  • Tags Tags
    Matlab
AI Thread Summary
The discussion revolves around a coding issue in a MATLAB script that calculates properties Z and V for varying temperature values T(k). The user seeks to modify the code so that it generates results for Z and V at each temperature in the specified range (40 to 80). Initially, the code only outputs results for a single temperature value. A suggestion is made to encapsulate the calculations for Z and V within the loop iterating over k, specifically by indexing them as Z(k,c,c) and V(k,c). However, the user encounters a problem where the output dimensions for Z are incorrect, resulting in an 80 by 4 by 4 matrix instead of the expected 5 by 4 by 4 matrix. The user requests further assistance to identify and correct the error in the code, expressing frustration over repeated checks without resolution.
adeeyo
Messages
20
Reaction score
0
Dear All,


Please help me on this little problem.

I have the code below.

for k=40:10:80
T(k)=273.15+k;
z=[0.2 0.2 0.2 0.4];
W_PR=0.245;
C=4;
omega=[0.344 0.467 0.578 0.789];
Tc=[600 700 500 570];
Pc=[50 70 58 76];
for c=1:C

x_PR(1,c)=z(c)/(1+W_PR*(K_PR(c)-1));
x_PR(2,c)=K_PR(c)*x_PR(1,c);
end
for c=1:C
kappa_PR=0.37464+1.54226.*omega(c)-0.26992.*omega(c).^2;
alpha_PR=(1+kappa_PR.*(1-sqrt(T(k)./Tc(c)))).^2;
a_PR(c,c)=0.45724.*R.^2.*Tc(c).^2./Pc(c).*alpha_PR;
b_PR(c)=0.07780*R.*Tc(c)./Pc(c);
end
for c=2:C
for n=1:(c-1)
a_PR(c,n)=sqrt(a_PR(c,c).*a_PR(n,n));
a_PR(n,c)=a_PR(c,n);
end
end
for c=1:C
A_PR(c,c)=a_PR(c,c).*P./(R.*T(k)).^2;
B_PR(c)=b_PR(c).*P./(R.*T(k));
end
for c=1:C
Z(c,c)=A_PR(c,c)./5;
V(c)=B_PR(c).*6;
end
end

QUESTION: Each time I run the code, I want result for Z and V at each T(k). The code as it is only gives result for one T value though I want it to run the loop and give result for Z and V for all T(k).

Thanks

adeeyo
 
Physics news on Phys.org
[edited with apologies]
you have managed to make a vector for T, and store the kth value in the kth position in the vector.
So what is stopping you doing the same for Z and V.

You'd have to put Z and V inside the k loop - encoding Z(k,c,c) and V(k,c)
 
Last edited:
Hi Simon,
I put Z and V inside k loop, but is giving me 80 by 4 by 4 matrix for Z instead of 5 by 4 by 4 matrix. Since my k=40:10:80; and T(k)=273.15+k;
Any advice?

Thanks
 
Well yes - you will have to change how these things get calculated too.
Clearly you have missed a step or terminated the cycle too soon.
 
Hi Simon,
I have checked the code over and over again I could not figure out where I got it wrong.
Please help me to check and verify the code.

Thanks
 
flow-chart it.

you can hire me to do it...
 
Please assist. I am a student.
 
Back
Top