В результате вычислений в Mathematica я получил огромную матрицу с пронумерованными переменными вида a[1],...,a[100]
в некоторых элементах. Я хотел бы импортировать эту матрицу как шаблон в Matlab, а затем заменить переменные случайными числами (нормально распределенными). Я совершенно не знаком с поддержкой символических переменных в Matlab и не уверен, поддерживает ли он индексированные символьные переменные. Мне нужна функция, которая ищет a[k]
и заменяет их случайным числом.
В Mathematica у меня есть квадратные матрицы матриц длины 2 ^ n, которые становятся все более и более разреженными по мере роста n и зависят от 5 * n (пока символических) переменных a [k]. Для n=2 матрица еще совсем не разреженная и выглядит так (в Mathematica-Code):
{{a[3] + a[3], a[7] - I a[8], a[10], I a[8]},
{I a[8], +a[6], I a[5], -I a[9] - a[8]},
{a[7] + I a[8], +a[2], I a[5], -a[7]},
{I a[8], a[2], a[2] + I a[15], -a[8]}}
Существует скрипт ToMatlab
, который преобразует нотацию Mathematica для матриц в нотацию Matlab. У меня практически полная свобода переименования переменных, так как это наиболее подходит для использования в Matlab. Теперь я хотел бы создать функцию в Matlab, которая возвращает эту точную матрицу (для фиксированного n сейчас будет достаточно, поэтому матрица действительно фиксирована) и заменяет a[k] нормально распределенным случайным числом.
a[k]
— это (пока) неопределенная функция a, вычисляемая в k. Но их можно просто использовать как индексированные переменные. - person Dominik   schedule 02.05.2014