У меня есть матрица с символьной переменной в MATLAB, например:
syms x
f = [x^2 x^3 x^4];
save ('sym.mat','f')
Поэтому я сохранил матрицу f
как sym.mat
. Теперь я хочу импортировать эту матрицу в python. Итак, я попробовал это:
import scipy.io as sio
matrix = sio.loadmat('sym.mat')
sym = matrix['f']
Но это не сработало. Я получил эту ошибку, которая представляет собой обычный питон keyerror
.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'f'
Однако, если f
не является символьной матрицей, тогда этот код работает нормально. Любые идеи, как я могу работать с этими матрицами с символическими переменными?
Что такое
keys
изmatrix
? Дайте нам представление о том, что вернулloadmat
. Я предполагаю, что MATLAB сохранил класс и/или функцию, которые нельзя преобразовать в структурыnumpy
. Я видел проблемы в предыдущих вопросах SO с функциями и датами MATLAB.Я вижу из других сообщений, что вы уже знаете о
sympy
.numpy
иscipy
не имеют никакой символической функциональности, поэтомуloadmat
не может вернуть эквивалент MATLAB, даже если он «понял»syms
. Лучшее, что вы можете сделать, это воссоздать их вsympy
.