这是剧本:
n=input('Enter the number of rows: ')
PT=zeros(n);
row=1;
col=1;
while row~=n+1
for col=1:1:n
PT(row, col)=(factorial(row-1)/(factorial(col-1)*factorial(row-col)));
end
row=row+1;
col=1;
end
PT
当我运行它时,它会输入行数,因此我输入了' 4'。然后它说
error: factorial: all N must be real non-negative integers
error: called from
factorial at line 40 column 5
hw6p2 at line 7 column 17
我不明白错误。
答案 0 :(得分:3)
在for col=1:1:n
行中,即使col
仍为n
,row
也可以达到值1
。因此,当您致电factorial(row-col)
时,row
可以是1
而col
可以是2
。这可能是消极的。
答案 1 :(得分:-2)
你的阶乘输入不应该为负.....在循环(row-col)中取负值并弹出错误。使用 abs 使其始终为正。
n=input('Enter the number of rows: ')
PT=zeros(n);
row=1;
col=1;
while row~=n+1
for col=1:1:n
PT(row, col)=(factorial(row-1)/(factorial(col-1)*factorial(abs(row-col))));
end
row=row+1;
col=1;
end
PT