Attempt to grow array along ambiguous dimension.

2 次查看(过去 30 天)
a = [0:80];
b = flip(a);
multA = ones(a);
multB = ones(a);
multAB = ones(a);
for i=1:80
multA(i) = (factorial(a(i)+99))/(factorial(a(i))*factorial(99));
multB(i) = (factorial(b(i)+99))/(factorial(b(i))*factorial(99));
multAB(i) = multA(i)*multB(i);
end
Error: Attempt to grow array along ambiguous dimension.
Why do I keep getting the above error? What is the ambiguous direction?
  1 个评论
Stephen23
Stephen23 2020-2-5
编辑:Stephen23 2020-2-5
Note that your results will be not be accurate (down to ones precision), as the values you are working with (e.g. 99!) are well above flintmax. If you require a precise output then you will need to use symbolic maths or a high-precision integer class:

请先登录,再进行评论。

回答(1 个)

the cyclist
the cyclist 2020-2-4
The way your defined your mult variables, they are 81-dimensional arrays. I think you meant:
multA = ones(size(a));
multB = ones(size(a));
multAB = ones(size(a));

类别

Help CenterFile Exchange 中查找有关 Numeric Types 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by