状态流®Simulink中的金宝app图表®模型具有一个动作语言属性,该属性定义了您用于使用向量和矩阵计算的语法。动作语言属性是:
MATLAB®作为动作语言。
C作为动作语言。
有关更多信息,请参阅MATLAB和C作为动作语言语法之间的差异。
在使用MATLAB作为动作语言的图表中,请参考向量或矩阵的元素通过使用括号界定的一个基于索引的索引。与逗号不同维度的单独索引。
在使用C作为动作语言的图表中,请参考向量或矩阵的元素,使用括号划分的基于零的索引。将不同维度的索引包裹在自己的一对括号中。
例子 | MATLAB作为动作语言 |
C作为动作语言 |
---|---|---|
向量的第一个元素v |
v(1) |
V [0] |
这一世 Th向量的元素v |
v(i) |
v [i-1] |
连续元素4 和列5 矩阵m |
M(4,5) |
M [3] [4] |
连续元素一世 和列j 矩阵m |
m(i,j) |
M [I-1] [J-1] |
该表总结了所有二进制操作对向量和矩阵操作数的解释,并根据其优先顺序(1 =最高,3 =最低)。二进制操作是关联的,因此,在任何表达式中,从左到右评估具有相同优先级的运算符。除图表中使用MATLAB作为动作语言的矩阵乘法和除法运算符外,所有二进制运算符还执行元素操作。
手术 |
优先 |
MATLAB作为动作语言 |
C作为动作语言 |
---|---|---|---|
|
1 |
矩阵乘法。 |
元素乘法。对于矩阵乘法,请使用 |
|
1 |
元素乘法。 |
不支持。金宝app使用操作 |
|
1 |
矩阵右部门。 |
元素右部门。对于矩阵右部门,请使用 |
|
1 |
元素右部门。 |
不支持。金宝app使用操作 |
|
1 |
矩阵左师。 |
不支持。金宝app使用 |
|
1 |
元素左派。 |
不支持。金宝app使用 |
|
2 |
添加。 |
添加。 |
|
2 |
减法。 |
减法。 |
|
3 |
比较,等于。 |
比较,等于。 |
|
3 |
比较,不等于。 |
比较,不等于。 |
|
3 |
不支持。金宝app使用操作 |
比较,不等于。 |
|
3 |
不支持。金宝app使用操作 |
比较,不等于。 |
该表总结了对向量和矩阵操作数的所有单一操作和动作的解释。单一操作:
比二元运营商具有更高的优先级。
是正确的关联,因此,在任何表达式中,它们都会从右到左进行评估。
执行元素操作。
该表总结了对向量和矩阵操作数的分配操作的解释。
手术 |
MATLAB作为动作语言 |
C作为动作语言 |
---|---|---|
|
简单的作业。 |
简单的作业。 |
|
不支持。金宝app使用表达式 |
相当于 |
|
不支持。金宝app使用表达式 |
相当于 |
|
不支持。金宝app使用表达式 |
相当于 |
|
不支持。金宝app使用表达式 |
相当于 |
您可以通过使用适合图表动作语言的索引语法为向量或矩阵的单个条目分配值。
例子 | MATLAB作为动作语言 |
C作为动作语言 |
---|---|---|
分配值10 到向量的第一个元素v 。 |
V(1)= 10; |
V [0] = 10; |
将值77分配给矩阵的第2行和第9列中的元素m 。 |
m(2,9)= 77; |
M [1] [8] = 77; |
在使用MATLAB作为动作语言的图表中,您可以使用单个操作来指定向量或矩阵的所有元素。例如,此操作分配了2 by-3矩阵的每个元素一个
具有不同的价值:
a = [1 2 3;4 5 6];
在使用C作为动作语言的图表中,您可以使用标量扩展将向量或矩阵的所有元素设置为相同的值。标量扩展将标量数据转换为匹配向量或矩阵数据的尺寸。例如,此操作设置了矩阵的所有元素一个
至10
:
a = 10;
标量扩展适用于所有图形,真实表,MATLAB和SIMULINK函数。金宝app假设您定义功能的正式论点F
作为标量。该表描述了函数调用的标量扩展规则y = f(u)
。
输出y |
输入你 |
结果 |
---|---|---|
标量 | 标量 | 没有标量扩展。 |
标量 | 向量或矩阵 | 该图生成大小不匹配错误。 |
向量或矩阵 | 标量 | 该图使用标量扩展来分配标量输出值 y [i] [j] = f(u) |
向量或矩阵 | 向量或矩阵 | 该图表使用标量扩展来计算每个元素的输出值 y [i] [j] = f(u [i] [j]) y 和你 没有相同的大小,图表会产生大小不匹配错误。 |
对于具有多个输出的函数,除非输出和输入都是向量或矩阵,否则适用相同的规则。在这种情况下,图表会产生大小不匹配误差,并且不会发生标量扩展。
使用MATLAB作为动作语言的图表不支持标量扩展。金宝app
在使用C作为动作语言的图表中*
和/
执行元素乘法和除法。要在C图表中执行标准矩阵乘法和除法,请使用MATLAB函数。
假设您想在方形矩阵上执行这些操作U1
和U2
:
计算标准矩阵产品y1 = u1 * u2
。
解决方程u1 * y2 = u2
。
解决方程y3 * u1 = u2
。
要在C图表中完成这些计算,请添加一个运行此代码的MATLAB函数:
功能[y1,y2,y3] = my_matrix_ops(u1,u2)%#codegeny1 = u1 * u2;%矩阵乘法y2 = u1 \ u2;右边的%矩阵部门Y3 = U1 / U2;左侧%矩阵部门
在使用MATLAB作为动作语言的图表中*
,,,,/
, 和\ \
执行标准矩阵乘法和除法。您可以直接在状态和过渡措施中使用这些操作。