How to plot graph with multiple values of x in a function

This code should produce graphs for y=(x^3)-(4*(x^2))-x-4. My code is incorrect because it is raising the whole x matrix to powers in the plot() function rather than considering each element in the matrix. How do I solve this?
Thanks
count=0
for i=[3,5,7,10,20,100]
count=count+1;
x=linspace(-5,2,i)
subplot(2,3,count)
plot(x,(x^3)-(4*(x^2))-x-4,'-xr')
end

 採用された回答

the cyclist
the cyclist 2021 年 11 月 11 日
編集済み: the cyclist 2021 年 11 月 11 日

1 投票

You need to use elementwise operations:
count=0;
for i=[3,5,7,10,20,100]
count=count+1;
x=linspace(-5,2,i);
subplot(2,3,count)
plot(x,(x.^3)-(4*(x.^2))-x-4,'-xr')
end

その他の回答 (2 件)

Sulaymon Eshkabilov
Sulaymon Eshkabilov 2021 年 11 月 11 日

1 投票

A small (but crucial) err that is elementwise operation needed, e.g.:
count=0;
for i=[3,5,7,10,20,100]
count=count+1;
x=linspace(-5,2,i);
subplot(2,3,count)
plot(x,(x.^3)-(4*(x.^2))-x-4,'-xr')
end
Sulaymon Eshkabilov
Sulaymon Eshkabilov 2021 年 11 月 11 日

1 投票

You may also consider to display a legend showing the number of x values taken for calc and plot in every iteration:
count=0;
for i=[3,5,7,10,20,100]
count=count+1;
x=linspace(-5,2,i);
subplot(2,3,count)
plot(x,(x.^3)-(4*(x.^2))-x-4,'-xr')
legend(['N_x = ', num2str(i)], 'location', 'best')
end

1 件のコメント

the cyclist
the cyclist 2021 年 11 月 11 日
I like the legend idea. In this particular case, I would use
'location','southeast'
rather than 'best'.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeLine Plots についてさらに検索

タグ

質問済み:

2021 年 11 月 11 日

コメント済み:

2021 年 11 月 11 日

Community Treasure Hunt

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

Start Hunting!

Translated by