Я пытаюсь найти способ преобразования массива 41x41 в матрицу в максимумах. Я пробовал aa1:matrix([aa]);
Если я попробую matrixp(aa1)
, он возвращает true, но матрица содержит только первое значение.Массив к матрице
У кого-нибудь есть мысли?
Я пытаюсь найти способ преобразования массива 41x41 в матрицу в максимумах. Я пробовал aa1:matrix([aa]);
Если я попробую matrixp(aa1)
, он возвращает true, но матрица содержит только первое значение.Массив к матрице
У кого-нибудь есть мысли?
Массивы IIUC являются хешами, поэтому порядок не такой твердый, как с матрицами. В стороне, похоже, должно быть возможно с некоторыми знаниями о том, как был создан массив, и genmatrix
, см. Пятый faq entry.
Таким образом, если массив создается следующим образом:
(%i1) for i thru 4 do for j thru 4 do A[i,j]: i+j$
Мы имеем:
(%i2) listarray(A);
(%o2) [2, 3, 4, 5, 3, 4, 5, 6, 4, 5, 6, 7, 5, 6, 7, 8]
(%i3) arrayinfo(A);
(%o3) [hashed, 2, [1, 1], [1, 2], [1, 3], [1, 4], [2, 1], [2, 2], [2, 3], [2, 4], [3, 1], [3, 2], [3, 3], [3, 4], [4, 1], [4, 2], [4, 3], [4, 4]]
A
может быть преобразована в матрицу 4x4, как это:
(%i4) genmatrix(A,4,4);
[ 2 3 4 5 ]
[ ]
[ 3 4 5 6 ]
(%o4) [ ]
[ 4 5 6 7 ]
[ ]
[ 5 6 7 8 ]
Когда я попытался это я заметил, что выражение было слишком длинным для отображения. '(% i901) aa1: genmatrix (aa, 41,41) << Выражение слишком долго для отображения! >> ' Когда я проверил, он сделал aa1 матрицей, но некоторые из значений отсутствовали, а вместо этого просто был aa1 sub 21,21. – user1558881
Я не могу воспроизвести эту ошибку, даже с массивом 410x410. Можете ли вы сделать минимальный пример, который имеет эту ошибку? – Thor
Произошла ошибка в моем цикле for, который создавал проблемы. Теперь он работает благодаря большому количеству помощи. Теперь я использую максимумы, чтобы найти собственные значения этой матрицы, и это занимает очень много времени. По порядку часа. Mathematica может решить собственные значения примерно через минуту. Имеют ли максимумы проблемы с обработкой матриц такого размера? – user1558881