Нужно избегать проблем с flintmax при простой факторизации больших значений.Matlab предлагает способ использования «sym», но я не могу заставить его работать.В настоящее время только использование «sym» ничего не возвращает / 0, а использование double () для преобразования «sym» возвращает ошибку:
Error using symengine
Unable to convert the expression into a double array.
Error in sym/double (line 692)
Xstr = mupadmex('symobj::double', S.s, 0);
Error in test5 (line 64)
factors = double(factors);
Вот что я пробовал до сих пор:
enter pixel_batch = [22, 41, 35, 14];
a = pixel_batch(1);
b = pixel_batch(2);
c = pixel_batch(3);
d = pixel_batch(4);
primes = [2^a, 3^b, 5^c, 7^d];
batch_representation = prod(primes);
n = sym('batch_representation');
factors = factor(n);
factors = double(factors);
a = sum(factors(:) == 2);
b = sum(factors(:) == 3);
c = sum(factors(:) == 5);
d = sum(factors(:) == 7);
pixel_batch2 = [a, b, c, d];