matlabFunctionBlock
符号表达式转换为MATLAB功能块
描述
例子
符号表达式转换为MATLAB功能块
创建一个新的模型和符号表达式转换为MATLAB功能块。在块通过指定包含注释评论
选择。
创建一个新的模型,并打开它。
new_system (my_system) open_system (“my_system”)
创建一个符号表达式。
信谊x y z f = x ^ 2 + y ^ 2 + z ^ 2;
使用matlabFunctionBlock
创建块my_block
包含符号表达式。matlabFunctionBlock
覆盖现有的块。
matlabFunctionBlock (my_system / my_block, f)
双击打开生成的块和编辑函数定义的块。
函数f = my_block (x, y, z) % # codegen %这个函数生成的符号数学工具箱7.3版。% 01 - 1月- 2017就是f = x ^ 2 + y ^ 2 + z。^ 2;
包括发表评论版本1.1
的块。
matlabFunctionBlock (my_system / my_block, f,“评论”,“版本:1.1”)
函数f = my_block (x, y, z)…%版本:1.1 f = x ^ 2 + y ^ 2 + z。^ 2;
保存并关闭my_system
。
save_system (my_system) close_system (“my_system”)
符号函数转换为MATLAB功能块
创建一个新的模型和符号函数转换为MATLAB功能块。
创建一个新的空模型并打开它。
new_system (“my_system”)open_system (“my_system”)
创建一个符号函数。
信谊xyzf (x, y, z) = x ^ 2 + y ^ 2 + z ^ 2;
转换f
MATLAB函数块。双击块的功能。
matlabFunctionBlock (“my_system / my_block”f)
函数f = my_block (x, y, z) % # codegen f = x ^ 2 + y ^ 2 + z。^ 2;
创建多个输出的街区
几个符号表达式转换为一个MATLAB与多个输出端口功能块。
创建一个新的空模型并打开它。
new_system (“my_system”)open_system (“my_system”)
创建三个符号表达式。
信谊xyzf = x ^ 2;g = y ^ 2;h = z ^ 2;
将其转换成一个MATLAB函数块。matlabFunctionBlock
创建一个块有三个输出端口。双击块的功能。
matlabFunctionBlock (“my_system / my_block”,f, g, h)
函数(f, g, h) = my_block (x, y, z) % # codegen f = x ^ 2;如果nargout > 1 g = y ^ 2;如果nargout > 2 h = z结束。^ 2;结束
指定生成函数的函数名
指定函数的名称定义生成的MATLAB函数块。
创建一个新的空模型并打开它。
new_system (“my_system”)open_system (“my_system”)
创建一个符号表达式。
信谊xyzf = x ^ 2 + y ^ 2 + z ^ 2;
生成一组块和函数名my_function
。双击块的功能。
matlabFunctionBlock (“my_system / my_block”f…“FunctionName”,“my_function”)
函数f = my_function (x, y, z) % # codegen f = x ^ 2 + y ^ 2 + z。^ 2;
禁用代码优化
当你符号表达式转换为MATLAB功能块,matlabFunctionBlock
优化代码默认情况下。这种方法可以帮助简化和加快进一步计算,使用该文件。然而,从一些象征性的表达式和函数生成优化的代码可能非常耗时。使用优化
禁用代码优化。
创建一个新的空模型并打开它。
new_system (“my_system”)open_system (“my_system”)
创建一个符号表达式。
信谊xr = x ^ 2 * (x ^ 2 + 1);
使用matlabFunctionBlock
创建块my_block
包含符号表达式。双击块函数定义的块。默认情况下,matlabFunctionBlock
创建一个文件包含优化代码。
matlabFunctionBlock (“my_system / my_block”右)
函数r = my_block (x) % # codegen t2 = x ^ 2;r = t2。* (t2 + 1.0);
禁用优化的代码设置的值优化
来假
。
matlabFunctionBlock (“my_system / my_block”r…“优化”假)
函数r = my_block (x) % # codegen r = x ^ 2。* (x ^ 2 + 1.0);
指定输入端口生成的块
指定的顺序输入端口的输入变量形式生成的块。
创建一个新的空模型并打开它。
new_system (“my_system”)open_system (“my_system”)
创建一个符号表达式。
信谊xyzf = x ^ 2 + y ^ 2 + z ^ 2;
将表达式转换为一个MATLAB函数块。默认情况下,matlabFunctionBlock
使用字母顺序输入参数的转换符号表达式。
matlabFunctionBlock (“my_system / my_block”f)
函数f = my_block (x, y, z) % # codegen f = x ^ 2 + y ^ 2 + z。^ 2;
使用var
参数指定的顺序输入端口。
matlabFunctionBlock (“my_system / my_block”f…“var”[y z x])
函数f = my_block (y, z、x) % # codegen f = x ^ 2 + y ^ 2 + z。^ 2;
为自动生成的元素指定输入端口
指定输入变量显式地为自动生成的元素。
创建一个新的空模型并打开它。
new_system (“my_system”)open_system (“my_system”)
创建一个具有象征意义的变量u
和一个3×1的向量符号变量x
。下面的命令也自动生成符号变量x1
,x2
,x3
在MATLAB工作区。
信谊u信谊x(3 - 1)谁
类属性名称大小字节u 1 x1 8 sym x 3 x1 8 sym x1 1 x1 8 sym x2 1 x1 8 sym x3 1 x1 8信谊
创建一个使用的符号表达式符号变量u
和x
。
一个= [0 1 0;0 0 1;1 1 2];b = [0;0;3);xdot = x + b * *
xdot = x2 x3 3 * u - x1, x2 - 2 * x3
转换xdot
表达一个MATLAB函数块。因为的元素xdot
包含的变量u
和自动生成的变量x1
,x2
,x3
,指定var
这些变量参数的显式而不是使用u
和x
。
matlabFunctionBlock (“my_system / my_block”xdot,“var”,{u (x1, x2, x3})
函数xdot = my_block (u (x1, x2, x3) % # codegen xdot = (x2, x3; u。* 3.0 -x1-x2-x3。* 2.0);
指定输出端口
当生成一个街区,重命名输出变量和相应的端口。
创建一个新的空模型并打开它。
new_system (“my_system”)open_system (“my_system”)
创建一个符号表达式。
信谊xyzf = x ^ 2 + y ^ 2 + z ^ 2;
将表达式转换为一个MATLAB函数块和指定输出变量的名称和端口。双击块函数定义的块。
matlabFunctionBlock (“my_system / my_block”f, f, f + 1, + 2,…“输出”,{“name1”,“name2”,“name3”})
函数(name1、name2 name3] = my_block (x, y, z) % # codegen t2 = x ^ 2;t3 = y ^ 2;t4 = z。^ 2;name1 = t2 + t3 + t4;如果nargout > 1 name2 = t2 + t3 + t4 + 1.0;如果nargout > 2 name3 = t2 + t3 + t4 + 2.0;结束
指定函数名称,输入和输出端口
调用matlabFunctionBlock
同时使用几个参数名称-值对。
创建一个新的空模型并打开它。
new_system (“my_system”)open_system (“my_system”)
创建一个符号表达式。
信谊xyzf = x ^ 2 + y ^ 2 + z ^ 2;
调用matlabFunctionBlock
使用名称-值对参数指定的函数名称,订单输入端口和输出端口的名称。双击块函数定义的块。
matlabFunctionBlock (“my_system / my_block”f, f, f + 1, + 2,…“FunctionName”,“my_function”,“var”[y z x],…“输出”,{“name1”,“name2”,“name3”})
函数(name1、name2 name3] = my_function (y, z、x) % # codegen t2 = x ^ 2;t3 = y ^ 2;t4 = z。^ 2;name1 = t2 + t3 + t4;如果nargout > 1 name2 = t2 + t3 + t4 + 1.0;如果nargout > 2 name3 = t2 + t3 + t4 + 2.0;结束
输入参数
块
- - - - - -块来创建或修改
特征向量
块来创建或修改,指定为一个特征向量。
f
- - - - - -符号转换为MATLAB功能块的输入
符号表达式|符号函数|象征性的向量|象征性的矩阵
符号输入转换为MATLAB功能块,作为符号表达式,指定函数向量或矩阵。
f1,…, fN
- - - - - -符号输入转换为MATLAB功能块N
输出
几个象征性的表达|几个符号函数|几个象征性的向量|几个符号矩阵
符号输入转换为一个MATLAB函数块N
输出,指定为几个符号表达式、函数、向量或矩阵,由逗号隔开。
名称-值参数
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
R2021a之前,用逗号来分隔每一个名称和值,并附上的名字
在报价。
例子:matlabFunctionBlock (my_system / my_block, f,‘FunctionName’,‘myfun’)
评论
- - - - - -评论在文件头
特征向量|单元阵列的特征向量|字符串向量
评论中包含文件头,指定为一个特征向量,单元阵列的特征向量,或字符串向量。
FunctionName
- - - - - -函数的名字
输入参数是一致的块
(默认)|特征向量
的函数名称,指定为一个特征向量。默认情况下,matlabFunction(块,…)
使用块
函数名。
看到指定生成函数的函数名。
优化
- - - - - -为代码优化
真正的
(默认)|假
var
- - - - - -输入变量和相应的输入端口顺序生成的块
特征向量|矢量符号变量|一维单元阵列的特征向量|符号变量的一维单元阵列|一维单元阵列的符号变量的向量
的顺序生成的块的输入变量和相应的输入端口,指定为一个特征向量,向量符号变量,或一维单元阵列的特征向量,向量符号变量或符号变量。
指定输入端口的数量必须等于或超过自由变量的数量f
。不要使用相同的名称所指定的输入端口吗var
和指定的输出端口输出
。
默认情况下,当你转换符号表达式,秩序是字母。当你转换符号函数,输入参数出现在前面的其他变量,和所有其他变量按字母顺序排序。
看到指定输入端口生成的块。
输出
- - - - - -输出端口的名字
出
其次是输出端口号(默认)|一维单元阵列的特征向量
输出端口的名字,指定为一维单元阵列的特征向量。如果你不指定输出端口名称,matlabFunctionBlock
使用的名字,包括这个词出
其次是输出端口号,例如,out3
。
不要使用相同的名称所指定的输入端口吗var
和指定的输出端口输出
。看到指定输出端口。
限制
一些符号函数,没有相应的MATLAB函数操作
双
数据类型,例如简化
和解决
,作为符号函数生成的MATLAB函数块。转换后的功能块,由这些函数不能用于仿真软件模型。金宝app您需要创建自己的函数双
数据类型来代替这些符号函数。如果你感兴趣的一个象征性的函数不能用于仿真软件模型,请联系金宝appMathWorks技术支持金宝app。
版本历史
对MATLAB
你们有派对在联合国留置权,对应这个对MATLAB:
倒实行la对saisissez-la在fenetre德对MATLAB。Les navigateurs web不sup金宝appportent Les MATLAB命令。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。