Преобразование символьного выражения в функциональный блок MATLAB
matlabFunctionBlock(___, преобразует символьное выражение, функцию или вектор символьных выражений или функций в функциональный блок MATLAB с использованием дополнительных опций, заданных одним или несколькими Name,Value)Name,Value аргументы пары. Можно указать Name,Value после входных аргументов, использованных в предыдущих синтаксисах.
Создайте новую модель и преобразуйте символьное выражение в функциональный блок MATLAB. Включить комментарии в блок, указав Comments вариант.
Создайте новую модель и откройте ее.
new_system('my_system')
open_system('my_system')Создайте символическое выражение.
syms x y z f = x^2 + y^2 + z^2;
Использовать matlabFunctionBlock для создания блока my_block содержит символическое выражение. matlabFunctionBlock перезаписывает существующие блоки. Дважды щелкните созданный блок, чтобы открыть и отредактировать функцию, определяющую блок.
matlabFunctionBlock('my_system/my_block',f)function f = my_block(x,y,z) %#codegen % This function was generated by the Symbolic Math Toolbox version 7.3. % 01-Jan-2017 00:00:00 f = x.^2+y.^2+z.^2;
Включить комментарий Version 1.1 в блоке.
matlabFunctionBlock('my_system/my_block',f,'Comments','Version: 1.1')function f = my_block(x,y,z) ... %Version: 1.1 f = x.^2+y.^2+z.^2;
Сохранить и закрыть my_system.
save_system('my_system')
close_system('my_system')Создайте новую модель и преобразуйте символическую функцию в функциональный блок MATLAB.
Создайте новую пустую модель и откройте ее.
new_system('my_system') open_system('my_system')
Создайте символическую функцию.
syms x y z f(x, y, z) = x^2 + y^2 + z^2;
Новообращенный f к функциональному блоку MATLAB. Дважды щелкните блок, чтобы увидеть функцию.
matlabFunctionBlock('my_system/my_block',f)function f = my_block(x,y,z) %#codegen f = x.^2+y.^2+z.^2;
Преобразование нескольких символьных выражений в функциональный блок MATLAB с несколькими портами вывода.
Создайте новую пустую модель и откройте ее.
new_system('my_system') open_system('my_system')
Создайте три символьных выражения.
syms x y z f = x^2; g = y^2; h = z^2;
Преобразуйте их в функциональный блок MATLAB. matlabFunctionBlock создает блок с тремя выходными портами. Дважды щелкните блок, чтобы увидеть функцию.
matlabFunctionBlock('my_system/my_block',f,g,h)function [f,g,h] = my_block(x,y,z)
%#codegen
f = x.^2;
if nargout > 1
g = y.^2;
end
if nargout > 2
h = z.^2;
endЗадание имени функции, определяющей сгенерированный функциональный блок MATLAB.
Создайте новую пустую модель и откройте ее.
new_system('my_system') open_system('my_system')
Создайте символическое выражение.
syms x y z f = x^2 + y^2 + z^2;
Создайте блок и задайте для имени функции значение my_function. Дважды щелкните блок, чтобы увидеть функцию.
matlabFunctionBlock('my_system/my_block',f,... 'FunctionName', 'my_function')
function f = my_function(x,y,z) %#codegen f = x.^2+y.^2+z.^2;
При преобразовании символьного выражения в функциональный блок MATLAB matlabFunctionBlock оптимизирует код по умолчанию. Этот подход может помочь упростить и ускорить дальнейшие вычисления, использующие файл. Тем не менее, генерация оптимизированного кода из некоторых символьных выражений и функций может занять очень много времени. Использовать Optimize для отключения оптимизации кода.
Создайте новую пустую модель и откройте ее.
new_system('my_system') open_system('my_system')
Создайте символическое выражение.
syms x
r = x^2*(x^2 + 1);Использовать matlabFunctionBlock для создания блока my_block содержит символическое выражение. Дважды щелкните блок, чтобы увидеть функцию, определяющую блок. По умолчанию matlabFunctionBlock создает файл, содержащий оптимизированный код.
matlabFunctionBlock('my_system/my_block',r)function r = my_block(x) %#codegen t2 = x.^2; r = t2.*(t2+1.0);
Отключите оптимизацию кода, установив значение Optimize кому false.
matlabFunctionBlock('my_system/my_block',r,... 'Optimize',false)
function r = my_block(x) %#codegen r = x.^2.*(x.^2+1.0);
Укажите порядок входных переменных, которые образуют входные порты в сформированном блоке.
Создайте новую пустую модель и откройте ее.
new_system('my_system') open_system('my_system')
Создайте символическое выражение.
syms x y z f = x^2 + y^2 + z^2;
Преобразование выражения в функциональный блок MATLAB. По умолчанию matlabFunctionBlock использует алфавитный порядок входных аргументов при преобразовании символьных выражений.
matlabFunctionBlock('my_system/my_block',f)function f = my_block(x,y,z) %#codegen f = x.^2+y.^2+z.^2;
Используйте Vars для указания порядка входных портов.
matlabFunctionBlock('my_system/my_block',f,... 'Vars', [y z x])
function f = my_block(y,z,x) %#codegen f = x.^2+y.^2+z.^2;
При создании блока переименуйте выходные переменные и соответствующие порты.
Создайте новую пустую модель и откройте ее.
new_system('my_system') open_system('my_system')
Создайте символическое выражение.
syms x y z f = x^2 + y^2 + z^2;
Преобразуйте выражение в функциональный блок MATLAB и укажите имена выходных переменных и портов. Дважды щелкните блок, чтобы увидеть функцию, определяющую блок.
matlabFunctionBlock('my_system/my_block',f,f + 1,f + 2,... 'Outputs', {'name1','name2','name3'})
function [name1,name2,name3] = my_block(x,y,z)
%#codegen
t2 = x.^2;
t3 = y.^2;
t4 = z.^2;
name1 = t2+t3+t4;
if nargout > 1
name2 = t2+t3+t4+1.0;
end
if nargout > 2
name3 = t2+t3+t4+2.0;
endЗвонить matlabFunctionBlock использование нескольких аргументов пары имя-значение одновременно.
Создайте новую пустую модель и откройте ее.
new_system('my_system') open_system('my_system')
Создайте символическое выражение.
syms x y z f = x^2 + y^2 + z^2;
Звонить matlabFunctionBlock использование аргументов пары имя-значение для указания имени функции, порядка входных портов и имен выходных портов. Дважды щелкните блок, чтобы увидеть функцию, определяющую блок.
matlabFunctionBlock('my_system/my_block',f,f + 1,f + 2,... 'FunctionName', 'my_function','Vars',[y z x],... 'Outputs',{'name1','name2','name3'})
function [name1,name2,name3] = my_function(y,z,x)
%#codegen
t2 = x.^2;
t3 = y.^2;
t4 = z.^2;
name1 = t2+t3+t4;
if nargout > 1
name2 = t2+t3+t4+1.0;
end
if nargout > 2
name3 = t2+t3+t4+2.0;
endblock - Блок для создания измененияБлок для создания изменения, заданный как символьный вектор.
f - Символьный ввод для преобразования в функциональный блок MATLABСимвольный ввод, преобразуемый в функциональный блок MATLAB, определяемый как символьное выражение, функция, вектор или матрица
f1,...,fN - Символьный ввод для преобразования в функциональный блок MATLAB с помощью N продукцияСимвольный ввод для преобразования в функциональный блок MATLAB с помощью N выводит несколько символьных выражений, функций, векторов или матриц, разделенных запятыми.
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
matlabFunctionBlock('my_system/my_block',f,'FunctionName','myfun')'Comments' - Комментарии для включения в заголовок файлаКомментарии для включения в заголовок файла, указанные как символьный вектор, массив ячеек символьных векторов или строковый вектор.
'FunctionName' - Наименование функцииblock (по умолчанию) | символьный векторИмя функции, указанное как символьный вектор. По умолчанию matlabFunction(block,…) использование block в качестве имени функции.
См. раздел Указание имени функции для сгенерированной функции.
'Optimize' - Флаг, препятствующий оптимизации кодаtrue (по умолчанию) | falseФлаг, препятствующий оптимизации кода, указанный как false или true.
При записи в файл matlabFunctionBlock оптимизирует код, используя промежуточные переменные с именем t0, t1, ....
См. раздел Отключение оптимизации кода.
'Vars' - Порядок входных переменных и соответствующих входных портов формируемого блокаПорядок входных переменных и соответствующих входных портов формируемого блока, определяемый как символьный вектор, вектор символьных переменных или одномерный массив ячеек символьных векторов, символьных переменных или векторов символьных переменных.
Число указанных входных портов должно быть равно или превышать число свободных переменных в f. Не используйте одинаковые имена для входных портов, указанных Vars и выходные порты, указанные Outputs.
По умолчанию при преобразовании символьных выражений порядок является алфавитным. При преобразовании символьных функций их входные аргументы отображаются перед другими переменными, а все остальные переменные сортируются в алфавитном порядке.
См. раздел Определение входных портов для сгенерированного блока.
'Outputs' - Имена выходных портовout далее следуют номера выходных портов (по умолчанию) | одномерный массив ячеек символьных векторовИмена выходных портов, определяемые как одномерный массив ячеек символьных векторов. Если имена выходных портов не указаны, matlabFunctionBlock использует имена, состоящие из слова out далее следуют номера портов вывода, например, out3.
Не используйте одинаковые имена для входных портов, указанных Vars и выходные порты, указанные Outputs. См. раздел Определение выходных портов.
ccode | fortran | matlabFunction | simscapeEquation | subs | sym2poly
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.