How to compute factorial if input is vector or matrix?

22 views (last 30 days)
I am solving a problem which asks to create a function to express factorial without using build-in functions such as factorial, prod or cumprod.
Actually, I have written down the function.Here is my code:
f=1;
for i=n:-1:1
f=f*i;
end
This function actually works. However I am wondering how to improve my function, if the input is a vector or even matrix rather than a scalar. But I am stuck now because i could not use any build-in functions. Could anybody help me or even just give me some hints for how to do so? Thank you so much.
  1 Comment
Geoff Hayes
Geoff Hayes on 16 Nov 2014
The easiest (and probably not the most efficient) method to try computing the factorial of each element in the vector or matrix, is to iterate over each element and compute its factorial. Determine the number of rows and columns in your matrix (or vector) and just use a couple of for loops to iterate over each element.

Sign in to comment.

Answers (1)

MA
MA on 16 Nov 2014
format long g
A=[1 2 3 50;4 5 6 2;9 8 7 11];
for i=1:size(A,1)
for j=1:size(A,2)
A(i,j)=factorial(A(i,j));
end
end
A

Community Treasure Hunt

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

Start Hunting!