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

4 Ansichten (letzte 30 Tage)
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!

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 17 Feb. 2013
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 Kommentare
George
George am 17 Feb. 2013
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!
Walter Roberson
Walter Roberson am 17 Feb. 2013
[Tmat, Vmat] = meshgrid(T, V);
P = n .* R .* Tmat ./ Vmat;
plot(V, P)
You might need
plot(V, P')
instead.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Shifting and Sorting Matrices finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by