exponenta event banner

ccode

Кодовое представление C символического выражения

Описание

пример

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

пример

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

Примеры

свернуть все

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

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

Создайте код C для матрицы Гильберта 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. Затем используйте сгенерированный код C для инициализации только ненулевых элементов. Этот подход обеспечивает эффективную инициализацию матриц, особенно разреженных матриц.

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

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

Запись кода C в файл 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 или C++ из символьного выражения, особенно для большого выражения, можно использовать приложение MATLAB ® Coder™ вместо ccode функция. Таким образом, созданный код лучше интегрирован в экосистему MATLAB. Сначала преобразуйте символьное выражение в развертываемую функцию MATLAB с помощью matlabFunction. Затем создайте код C или C++ из функции MATLAB с помощью приложения MATLAB Coder. Пример см. в разделе Создание кода C из символьных выражений с помощью приложения MATLAB Coder App.

См. также

| |

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