Преобразуйте символьное выражение в блок 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.