How to make a function operate on a vector of arbitrary length
4 views (last 30 days)
Show older comments
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
0 Comments
Accepted Answer
Stephan
on 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
0 Comments
More Answers (0)
See Also
Categories
Find more on Inputs in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!