How do I plot in a for loop?

14 vues (au cours des 30 derniers jours)
Amy Jeffers
Amy Jeffers le 24 Jan 2018
I am trying to plot y=A*(x+B)^n with constant A and B-values but I want to plot three different lines, each with a different n-value (n=1, 2, and 3). It keeps giving me a plot with one line and it also says there is an error using ".^". Can anybody tell me what's wrong with my code?
x = linspace(0, 2*pi, 100);
A = 1;
B = 1;
n = 1:3;
y = A*(x+B).^n;
for n = 1:3
plot(x,y); hold on
end
hold off

Réponse acceptée

Star Strider
Star Strider le 24 Jan 2018
Use the bsxfun function to automatically expand the vectors:
x = linspace(0, 2*pi, 100);
A = 1;
B = 1;
n = 1:3;
y = bsxfun(@power, A*(x+B), n');
for n = 1:3
plot(x,y); hold on
end
hold off
Note the transpose (') operator on ‘n’.

Plus de réponses (1)

Walter Roberson
Walter Roberson le 24 Jan 2018
[X, N] = ndgrid(x, n);
Y = A * (X + B).^N;
plot(X, Y)

Catégories

En savoir plus sur Scatter Plots dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by