Как исправить ошибку sym при выполнении простой факторизации с большими значениями - PullRequest
0 голосов
/ 19 апреля 2019

Нужно избегать проблем с 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];
...