Creating a function to output factorials.
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
MILLER BIGGELAAR
am 16 Apr. 2020
Kommentiert: MILLER BIGGELAAR
am 16 Apr. 2020
Hi I am trying to create a user defined function that will allow me to enter an integer and it will output the given factorial.
function [y] = fact(x)
clc
y=1;
for i=1:x
y=y*i;
end
disp(y)
This is it and it is working but I also need it to display an error message if it is a negative integer or non integer (e.g 8.5) and for it to also display 1 for factorial 0.
I have tried adding if statements in the loop for if x<0 etc. but I am getting the same answer which is just 1.
It works for positive integers just not the others.
Any thoughts?
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 16 Apr. 2020
if ~isnumeric(x) || ~isscalar(x) || x ~= fix(x) %x == fix(x) checks for integer
error('Oh, oh, oh, oh, oh!')
end
3 Kommentare
Walter Roberson
am 16 Apr. 2020
Works for me:
if ~isnumeric(x) || ~isscalar(x) || x ~= fix(x) || x<0 %x == fix(x) checks for integer
error('Oh, oh, oh, oh, oh!')
end
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Special Functions finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!