Как насчет этого:
import sympy
M = sympy.Matrix(3, 2, lambda i,j:sympy.var('M_%d%d' % (i+1,j+1)))
Редактировать: Полагаю, мне следует добавить небольшое объяснение.Первые два аргумента sympy.Matrix () определяют матрицу как 3x2 (как вы указали).Третий аргумент - это функция lambda , которая, по сути, является кратким способом определения функции в одной строке, а не формальным определением ее с помощью def .Эта функция принимает переменные i и j в качестве входных данных, которые удобно являются индексами матрицы.Для каждой пары (i, j) , которые передаются в лямбда (т. Е. Для каждого элемента матрицы), мы создаем новую символическую переменную M_ij . sympy.var () принимает в качестве входных данных строку, определяющую имя новой символической переменной.Мы генерируем эту строку на лету, используя строку формата 'M_% d% d' и заполняя ее (i + 1, j + 1) .Мы добавляем 1 к i и j , потому что вы хотите, чтобы матрица была проиндексирована на 1, а не на 0, как стандарт в Python.