How do I plot in a for loop?

12 ビュー (過去 30 日間)
Amy Jeffers
Amy Jeffers 2018 年 1 月 24 日
回答済み: Walter Roberson 2018 年 1 月 24 日
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

採用された回答

Star Strider
Star Strider 2018 年 1 月 24 日
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’.

その他の回答 (1 件)

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

カテゴリ

Help Center および File ExchangeScatter Plots についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by