Я не знаком с этой ошибкой (возможно, потому, что я никогда не использовал такие большие матрицы).Ошибка, вероятно, связана с тем фактом, что double
переменные могут точно представлять целые числа до 2^53
.Количество элементов вашей матрицы не превышает этот предел, но оно близко.
Возможно, вы можете обойти проблему, вплоть до 2^53
, получив индексы строк и столбцов, а затем вычислив линейный индексиз них вручную:
[ii,jj] = find(K);
inds = ii + (jj-1)*size(K,1);
При необходимости вы можете увеличить предел до 2^64
, используя линейный индекс uint64
вместо double
:
[ii,jj] = find(K);
inds = uint64(ii) + (uint64(jj)-1)*size(K,1);