Представление выражений в кодах языка С
Система MATLAB написана на языке С, одном из лучших языков системного программирования. Существует возможность использования написанных на языке С библиотек расширения системы. А с помощью функции ccode (S) можно представить выражения языка MATLAB S в форме, принятой в языке С. Проиллюстрируем это примерами:
» syms х у z
» ccode((1+хЛ2)/(уЛ2-гЛ2)) ans =
tO = (1.0+х*х)/(y*y-z*z);
» S=xA2*уЛ3/zЛ4 ;
» ccode (S) ans =
tO = x*x*y*y*y/pow (z,4.0);
Применение функции ccdode облегчает программистам создание библиотек программ на языке С и уменьшает вероятность ошибок в математических выражениях.
Представление выражений в кодах языка Fortran
Язык Fortran и сегодня не потерял своей привлекательности у создателей математических программ — в основном из-за своей почетной родословной и наличия множества библиотечных программ по реализации математических алгоритмов и численных методов. Функция fortran (S) обеспечивает преобразование выражения MATLAB s в форму, соответствующую записи на языке Fortran. Примеры:
>> syms х у z
» fortran((1+хЛ2)/(ул2-гл2)) ans =
tO = (1+х**2)/(y**2-z**2)
>> 3=хл2*ул3/zл4;
» fortran (S)
ans =
tO = x**2*y**3/z**4
Функция fortran призвана облегчить работу специалистов, работающих с программами на языке Fortran. Большинство пользователей вряд ли оценят полезность этой функции, поскольку они обращаются к системе MATLAB именно с целью избавления от необходимости программирования на языках высокого уровня.
Контроль допустимости имен
Функция isvarname(S) возвращает логическое значение 1, если имя S допустимо в системе MATLAB, и 0, если оно недопустимо. Допустимое имя должно начинаться с буквы и может иметь до 32 символов (букв и цифр). Примеры:
>> isvarname('ххх') ans =
» isvarname('1х')
ans =
О
» isvarname('а+Ь')
ans =
О
Векторизация символьных выражений
Векторизация означает проведение почленного преобразования элементов матриц и векторов. В MATLAB функция vectorize (S) для символьного выражения S вставляет знак «.» после всех следующих символов: у «Л», «*» или «/». Результатом будет строка, содержащая операторы для почленного вычисления выражения:
>> syms х
» vectorize(1+2*х+3*хЛ2)
ans =
1+2.*х+3.*х.л2