Why this code is error???

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;
stem3(x,y,mpd);
xlabel('x'); ylabel('y'); zlabel('mpd');

2 commentaires

Jukkrid Boonlkom
Jukkrid Boonlkom le 15 Fév 2018
If I wanted to make x + y> 3 to f5 = 1, then how to do?
RB Blackstone
RB Blackstone le 16 Fév 2018
This part of the equation produced negative integers.
>> 3+-x+-y
Ans = 3 1 -1 -3
Factorial() requires non-negative integers.

Réponses (1)

C.J. Harris
C.J. Harris le 15 Fév 2018

0 votes

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.

2 commentaires

Jukkrid Boonlkom
Jukkrid Boonlkom le 15 Fév 2018
Modifié(e) : Jukkrid Boonlkom le 15 Fév 2018
So what should I do? Can I change 3-x-y?
Jan
Jan le 16 Fév 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.

Cette question est clôturée.

Tags

Clôturé :

le 20 Août 2021

Community Treasure Hunt

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

Start Hunting!

Translated by