How can i plot this function with factorial?
2 ビュー (過去 30 日間)
古いコメントを表示
I would like to have the following function plotting:
lap = (3*factorial(x)-1)./(120*10^(12));
xValues = linspace(0,1,20);
plot(xValues, semilap(xValues));
I get the following error message:
"Array indices must be positive integers or logical values."
I would also be very grateful if someone could tell me how to plot the Y-axis logarithmically in this case.
1 件のコメント
回答 (2 件)
Rik
2021 年 2 月 2 日
If you want to plot a function, you should do so explicitly:
lap = @(x)(3*factorial(x)-1)./(120*10^(12));
xValues = round(logspace(0,1,20));%round to make sure the input to factorial is interger-only
semilogy(xValues, lap(xValues))
0 件のコメント
Steven Lord
2021 年 2 月 2 日
You haven't shown us what semilap is. If you intended for that to be the expression in lap evaluated at the points in xValues, you need to make lap a function or a function handle (which could be anonymous.) However:
lap = @(x) (3*factorial(x)-1)./(120*10^(12));
xValues = linspace(0,1,20);
plot(xValues, lap(xValues));
the factorial function is only defined for real non-negative integer values and xValues contains non-integer values. You could use the gamma function instead.
As for plotting logarithmically, see the semilogy function (or semilogx if you want just the X axis to be in logarithmic scale or loglog if you want both logarithmic.)
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Contour Plots についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
