In an assignment A(I) = B, the number of elements in B and I must be the same.

Hello, I want to make 4 plots in one according to below:
R=8.3145;
n=1;
V=linspace(1,10,1000);
T=[100,200,300,400];
for i=1:4
P(i)=n*R*T(i)./ V;
hold on;
plot(V,P(i))
end
hold off;
I am getting the error above. If I do :
P=n*R*T(1)./V;
plot(V,P)
it's ok!I don't understand why the error.
Thank you!

 Accepted Answer

In your line
P(i)=n*R*T(i)./ V;
your n and R and T(i) are scalars, but your V is a vector, so the result is a vector. You are trying to store the vector into a scalar location P(i)

2 Comments

Oh yes!And I must just do "P=n*R*T(i)./ V;" and then "plot(V,P)". Is there a way to avoid loops in this situation?Also, if I want to place legend for these 4 different plots in one how can I do it given that it lies inside a loop?Thanks!
[Tmat, Vmat] = meshgrid(T, V);
P = n .* R .* Tmat ./ Vmat;
plot(V, P)
You might need
plot(V, P')
instead.

Sign in to comment.

More Answers (0)

Categories

Find more on 2-D and 3-D Plots in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!