ccode

Представление кода С символьного выражения

Синтаксис

Описание

пример

ccode(f) возвращает код С для символического выражения f.

пример

ccode(f,Name,Value) использует дополнительные опции, заданные одним или несколькими Name,Value аргументы в виде пар.

Примеры

свернуть все

Сгенерируйте код С из символического выражения log(1+x).

syms x
f = log(1+x);
ccode(f)
ans =
    '  t0 = log(x+1.0);'

Сгенерируйте код С для гильбертовой матрицы 3 на 3.

H = sym(hilb(3));
ccode(H)
ans =
    '  H[0][0] = 1.0;
       H[0][1] = 1.0/2.0;
       H[0][2] = 1.0/3.0;
       H[1][0] = 1.0/2.0;
       H[1][1] = 1.0/3.0;
       H[1][2] = 1.0/4.0;
       H[2][0] = 1.0/3.0;
       H[2][1] = 1.0/4.0;
       H[2][2] = 1.0/5.0;'

Поскольку сгенерированный код C инициализирует только ненулевые элементы, можно эффективно инициализировать массивы, установив для всех элементов значение 0 непосредственно в вашем Коде С. Затем используйте сгенерированный код C, чтобы инициализировать только ненулевые элементы. Этот подход позволяет эффективно инициализировать матрицы, особенно разреженные матрицы.

Инициализируйте матрицу тождеств 3 на 3. Сначала инициализируйте матрицу со всеми элементами, установленными на 0 в вашем Коде С. Затем используйте сгенерированный код C, чтобы инициализировать ненулевые значения.

I3 = sym(eye(3));
I3code = ccode(I3)
I3code =
    '  I3[0][0] = 1.0;
       I3[1][1] = 1.0;
       I3[2][2] = 1.0;'

Запись кода С в файл ccodetest.c путем определения File опция. При записи в файл, ccode оптимизирует код с помощью промежуточных переменных с именем t0, t1и так далее.

syms x
f = diff(tan(x));
ccode(f,'File','ccodetest.c')
  t0 = pow(tan(x),2.0)+1.0;

Включите комментарий Version: 1.1 в файле при помощи Comments опция. ccode использует комментарии блоков.

ccode(f,'File','ccodetest.c','Comments','Version: 1.1')
  /*
  Version: 1.1
  */
  t0 = pow(tan(x),2.0)+1.0;

Входные параметры

свернуть все

Символьный вход, заданный как символьное выражение.

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: ccode(x^2,'File','ccode.c','Comments','V1.2')

Файл для записи, заданный как вектор символов или строка. При записи в файл, ccode оптимизирует код с помощью промежуточных переменных с именем t0, t1и так далее.

Комментарии для включения в заголовок файла, заданные как вектор символов, массив ячеек из векторов символов или строковый вектор. Поскольку ccode использует комментарии блоков, комментарии не должны содержать /* или */.

Совет

  • Чтобы сгенерировать оптимизированные коды C or C++ из символьного выражения, особенно для большого выражения, можно использовать MATLAB® Coder™ приложение вместо использования ccode функция. Таким образом, сгенерированный код лучше интегрирован в экосистему MATLAB. Во-первых, преобразуйте символическое выражение в развертываемую функцию MATLAB с помощью matlabFunction. Затем сгенерируйте код C or C++ из функции MATLAB с помощью приложения MATLAB Coder. Для получения примера смотрите Сгенерируйте Код С из символических выражений с использованием приложения MATLAB Coder.

См. также

| |

Представлено до R2006a