Get the factorial of an array

How can I create a function that calculates the factorial of each number in an array and returns another array which is the factorial.
The numbers are any positive integers and they haven't a specific order, for example [1 9 1 3 7 2 5 4 0 9]; I want to input this so the output would be [1 362880 1 6 5040 2 120 24 1 362880].
Thanks in advance.

Answers (2)

The factorial( ) function is vectorized, so just call it:
>> n = [1 9 1 3 7 2 5 4 0 9];
>> factorial(n)
ans =
Columns 1 through 8
1 362880 1 6 5040 2 120 24
Columns 9 through 10
1 362880
Ameer Hamza
Ameer Hamza on 8 May 2020
Edited: Ameer Hamza on 8 May 2020
x = [1 9 1 3 7 2 5 4 0 9];
y = arrayfun(@factorial, x);
Result
>> y
y =
Columns 1 through 6
1 362880 1 6 5040 2
Columns 7 through 10
120 24 1 362880

Categories

Find more on Operators and Elementary Operations in Help Center and File Exchange

Asked:

on 8 May 2020

Answered:

on 8 May 2020

Community Treasure Hunt

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

Start Hunting!