主要内容

金宝app向量和矩阵的支持操作

状态流®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作为动作语言

A * b

1

矩阵乘法。

元素乘法。对于矩阵乘法,请使用*在MATLAB功能中操作。看通过使用MATLAB函数执行矩阵算术

a。* b

1

元素乘法。

不支持。金宝app使用操作A * b

A / b

1

矩阵右部门。

元素右部门。对于矩阵右部门,请使用/在MATLAB功能中操作。看通过使用MATLAB函数执行矩阵算术

a ./ b

1

元素右部门。

不支持。金宝app使用操作A / b

a \ b

1

矩阵左师。

不支持。金宝app使用\ \在MATLAB功能中操作。看通过使用MATLAB函数执行矩阵算术

a。\ b

1

元素左派。

不支持。金宝app使用。\在MATLAB功能中操作。看通过使用MATLAB函数执行矩阵算术

a + b

2

添加。

添加。

a- b

2

减法。

减法。

a == b

3

比较,等于。

比较,等于。

A〜 = B

3

比较,不等于。

比较,不等于。

a!= b

3

不支持。金宝app使用操作A〜 = B

比较,不等于。

a <> b

3

不支持。金宝app使用操作A〜 = B

比较,不等于。

一般操作和行动

该表总结了对向量和矩阵操作数的所有单一操作和动作的解释。单一操作:

  • 比二元运营商具有更高的优先级。

  • 是正确的关联,因此,在任何表达式中,它们都会从右到左进行评估。

  • 执行元素操作。

例子

MATLAB作为动作语言

C作为动作语言

〜a

逻辑不是。对于钻头,请使用BITCMP功能。

  • 钻头不(默认)。通过选择启用C-BIT操作图表属性。

  • 逻辑不是。通过清除启用C-BIT操作图表属性。

有关更多信息,请参阅钻头操作启用C-BIT操作

!一个

不支持。金宝app使用操作〜a

逻辑不是。

-一个

消极的。

消极的。

A ++

不支持。金宝app

递增向量或矩阵的所有元素。相当于a = a+1

一个 -

不支持。金宝app

降低向量或矩阵的所有元素。相当于a = a-1

作业操作

该表总结了对向量和矩阵操作数的分配操作的解释。

手术

MATLAB作为动作语言

C作为动作语言

a = b

简单的作业。

简单的作业。

A += B

不支持。金宝app使用表达式a = a+b

相当于a = a+b

A- = B

不支持。金宝app使用表达式a = a-b

相当于a = a-b

A *= B

不支持。金宝app使用表达式a = a*b

相当于a = a*b

A /= B

不支持。金宝app使用表达式a = a/b

相当于a = a/b

将值分配给矩阵的单个元素

您可以通过使用适合图表动作语言的索引语法为向量或矩阵的单个条目分配值。

例子

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 输入 结果
标量 标量 没有标量扩展。
标量 向量或矩阵 该图生成大小不匹配错误。
向量或矩阵 标量

该图使用标量扩展来分配标量输出值f(u)到每个元素y

y [i] [j] = f(u)

向量或矩阵 向量或矩阵

该图表使用标量扩展来计算每个元素的输出值并将其分配给y

y [i] [j] = f(u [i] [j])
如果y没有相同的大小,图表会产生大小不匹配错误。

对于具有多个输出的函数,除非输出和输入都是向量或矩阵,否则适用相同的规则。在这种情况下,图表会产生大小不匹配误差,并且不会发生标量扩展。

使用MATLAB作为动作语言的图表不支持标量扩展。金宝app

通过使用MATLAB功能

在使用C作为动作语言的图表中*/执行元素乘法和除法。要在C图表中执行标准矩阵乘法和除法,请使用MATLAB函数。

假设您想在方形矩阵上执行这些操作U1U2

  • 计算标准矩阵产品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作为动作语言的图表中*,,,,/, 和\ \执行标准矩阵乘法和除法。您可以直接在状态和过渡措施中使用这些操作。

相关话题