How to make a function operate on a vector of arbitrary length

4 visualizzazioni (ultimi 30 giorni)
I have written a function to compute the factorial of a positive integer and return error results if something that isn't a positive integer is input into the function. However, I need to extend this so that the function can be applied to a vector of any length and will find the factorial of each element individually. How do I go about doing this?
function s = sfactorial(x)
if x < 0
error('x must be positive')
elseif floor(x) ~= x
error('x must be an integer')
else
result=1;
for i = 1:x
result=result*i;
end
end
result

Risposta accettata

Stephan
Stephan il 2 Nov 2018
function s = sfactorial(x)
if x < 0
error('x must be positive')
elseif floor(x) ~= x
error('x must be an integer')
else
result=ones(1,numel(x));
for k = 1:numel(x)
for i = 1:x(k)
result(k) = result(k)*i
end
end
end
s = result;
end

Più risposte (0)

Categorie

Scopri di più su Creating, Deleting, and Querying Graphics Objects in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by