Сгенерируйте C или Код на языке Фортран из символьных выражений

Можно сгенерировать фрагменты кода C или Фортран из символьного выражения или сгенерировать файлы, содержащие фрагменты кода, используя ccode и fortran функций. Эти фрагменты кода вычисляют числовые значения, как если бы подставляя числа для переменных в символьном выражении.

Чтобы сгенерировать код из символьного выражения g, введите любой из ccode(g) или fortran(g).

Для примера:

syms x y
z = 30*x^4/(x*y^2 + 10) - x^3*(y^2 + 1)^2;
fortran(z)
ans =
    '      t0 = (x**4*3.0D+1)/(x*y**2+1.0D+1)-x**3*(y**2+1.0D0)**2'
ccode(z)
ans =
    '  t0 = ((x*x*x*x)*3.0E+1)/(x*(y*y)+1.0E+1)-(x*x*x)*pow(y*y+1.0,2.0);'

Чтобы сгенерировать файл, содержащий код, либо введите кодовый код (g, 'file', 'filename') или фортран (g, 'file', 'filename'). Для примера выше,

fortran(z, 'file', 'fortrantest')

генерирует файл с именем fortrantest в текущей папке. fortrantest состоит из:

      t2 = y**2
      t0 = (x**4*3.0D+1)/(t2*x+1.0D+1)-x**3*(t2+1.0D0)**2

Точно так же команда

ccode(z,'file','ccodetest')

генерирует файл с именем ccodetest который состоит из линий

  t2 = y*y;
  t0 = ((x*x*x*x)*3.0E+1)/(t2*x+1.0E+1)-(x*x*x)*pow(t2+1.0,2.0);

ccode и fortran сгенерировать много промежуточных переменных. Это называется оптимизированным кодом. MATLAB® генерирует промежуточные переменные в виде строчной буквы t далее следует автоматически сгенерированный номер, такой как t2. Промежуточные переменные могут сделать полученный код более эффективным при переиспользовании промежуточных выражений (таких как t2 в fortrantest и ccodetest). Они также могут облегчить чтение кода, сохраняя краткие выражения.