Issue: Matrix Dimensions Must Agree

%PV=NRT
T1=273;
T2=293;
T3=313;
P=100:50:300; %kPa
R=8.314; %Ideal gas constant J*K^-1*mol^-1
n=1;
Volume1=n*R*T1/P;
Volume2=n*R*T2/P;
Volume3=n*R*T3/P;
figure(1)
plot(Volume1,P)
xlabel('Pressure [kPA]')
ylabel('Volume [m^3]')
figure(2)
plot(Volume2,P)
xlabel('Pressure [kPA]')
ylabel('Volume [m^3]')
figure(3)
plot(Volume3,P)
xlabel('Pressure [kPa]')
ylabel('Volume [m^3]')

Answers (1)

James Tursa
James Tursa on 5 Sep 2017
Edited: James Tursa on 5 Sep 2017
Use element-wise operator ./ (with the dot) instead of the matrix operator /
E.g.,
Volume1=n*R*T1./P;
Volume2=n*R*T2./P;
Volume3=n*R*T3./P;

2 Comments

In the plots generated, how would you vary the pressure between 100 kPa and 300 kPa in steps of 50 kPa?
You've got the pressure and volume arguments reversed in your plot calls. The first one is the x-axis and the second one is the y-axis. So this line:
plot(Volume1,P)
should be this instead:
plot(P,Volume1)
Same for Volume2 and Volume3.
And if you want to change the tick spacing on the x-axis, you could do something like this for each figure:
set(gca,'Xtick',P);
Finally, I typically use this to make the plots more readable:
grid on

Sign in to comment.

Products

Asked:

on 5 Sep 2017

Edited:

on 5 Sep 2017

Community Treasure Hunt

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

Start Hunting!