Преобразуйте символьное выражение в блок MATLAB function
matlabFunctionBlock(___,
преобразует символьное выражение, функцию или вектор из символьных выражений или функций к блоку MATLAB function с помощью дополнительных опций, заданных одним или несколькими Name,Value
)Name,Value
парные аргументы. Можно задать Name,Value
после того, как входные параметры используются в предыдущих синтаксисах.
Создайте новую модель и преобразуйте символьное выражение в блок MATLAB function. Включайте комментарии в блок путем определения 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 function.
Создайте новую пустую модель и откройте ее.
new_system('my_system') open_system('my_system')
Создайте символьную функцию.
syms x y z f(x, y, z) = x^2 + y^2 + z^2;
Преобразуйте f
к блоку MATLAB function. Дважды кликните блок, чтобы видеть функцию.
matlabFunctionBlock('my_system/my_block',f)
function f = my_block(x,y,z) %#codegen f = x.^2+y.^2+z.^2;
Преобразуйте несколько символьных выражений в блок MATLAB function с несколькими выходными портами.
Создайте новую пустую модель и откройте ее.
new_system('my_system') open_system('my_system')
Создайте три символьных выражения.
syms x y z f = x^2; g = y^2; h = z^2;
Преобразуйте их в блок MATLAB function. 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 function.
Создайте новую пустую модель и откройте ее.
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 function, 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 function. По умолчанию, 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 function и задайте имена выходных переменных и портов. Дважды кликните блок, чтобы видеть, что функция задает блок.
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; end
block
— Блокируйтесь, чтобы создать, изменяютБлокируйтесь, чтобы создать, изменяют в виде вектора символов.
f
— Символьный вход, который будет преобразован в блок MATLAB functionСимвольный вход, который будет преобразован в блок MATLAB function в виде символьного выражения, функции, вектора или матрицы
f1,...,fN
— Символьный вход, который будет преобразован в блок MATLAB function с N
выходные параметры Символьный вход, который будет преобразован в блок MATLAB function с 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.