MathLab 2019 backward compatibility
古いコメントを表示
The following code compiles and runs fine in '9.7.0.1216025 (R2019b) Update 1'
function approx = test3(x,N)
approx = zeros(N,1);
approx(1) = x + 1;
for i = 2:N
approx(i) = approx(i - 1) + x^i / factorial(i);
end
end
However, when I try and run it in my 2017 Uni environment, I get the following error:
Output argument "output" (and maybe others) not assigned
during call to "factorial".
Error in test3 (line 5)
approx(i) = approx(i - 1) + (x^i) / factorial(i);
Any ideas please?
回答 (1 件)
J. Alex Lee
2019 年 12 月 4 日
0 投票
is it possible that in your 2017 environment, you have inadvertently overloaded the "factorial" function?
5 件のコメント
andrew boar
2019 年 12 月 4 日
Sean de Wolski
2019 年 12 月 4 日
Overloading as in there are multiple files named factorial.m
What is the output of
which -all factorial
Rename any that aren't base in matlabroot.
andrew boar
2019 年 12 月 4 日
Sean de Wolski
2019 年 12 月 4 日
Yes. This is the default one that ships with MATLAB that you're probably intending to call but aren't:
C:\Program Files\MATLAB\R2017a\toolbox\matlab\specfun\factorial.m
The other three in matlabroot are overloaded ones for those specific data types. The one in OneDrive is shadowing the specfun one that you're intending to call. Rename the OneDrive one to myFactorial or something to avoid the conflict.
andrew boar
2019 年 12 月 5 日
カテゴリ
ヘルプ センター および File Exchange で Creating and Concatenating Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!