This question is closed. Reopen it to edit or answer.

Why this code is error???

1 view (last 30 days)
Jukkrid Boonlkom
Jukkrid Boonlkom on 15 Feb 2018
Closed: MATLAB Answer Bot on 20 Aug 2021
clc,clear all,close all;
x = [0 1 2 3];
y = [0 1 2 3];
f3 = 6./(factorial(x).*factorial(3-x));
f4 = 24./(factorial(y).*factorial(4-y));
f5 = 120./(factorial(3+(-x)+(-y)).*factorial(2+x+y));
mpd = (f3.*f4.*f5)./220;
xlabel('x'); ylabel('y'); zlabel('mpd');
RB Blackstone
RB Blackstone on 16 Feb 2018
This part of the equation produced negative integers.
>> 3+-x+-y
Ans = 3 1 -1 -3
Factorial() requires non-negative integers.

Answers (1)

C.J. Harris
C.J. Harris on 15 Feb 2018
Because given your definitions of x and y, the expression 3+(-x)+(-y) results in [3 1 -1 -3], and you cannot calculate the factorial of a negative number.
Jan on 16 Feb 2018
@Jukkrid Boonlkom: How could the readers know, what you want to do. All we see is the failing code, which cannot work for mathematical reasons. This does not allow to suggest a modification, because you did not tell yet, what you want to calculate.


Community Treasure Hunt

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

Start Hunting!