Можно сгенерировать C или фрагменты кода Фортран от символьного выражения, или сгенерировать файлы, содержащие фрагменты кода, с помощью функций fortran
и ccode
. Эти фрагменты кода вычисляют численные значения, как будто заменяя числами переменные в символьном выражении.
Чтобы сгенерировать код от символьного выражения 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);'
Чтобы сгенерировать файл, содержащий код, или введите
или ccode(g,'file','filename')
. Для примера выше,fortran(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
). Они могут также сделать код легче читать путем хранения выражений короткими.