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!
