多维数组的概念对于每个程序员来说应该都不会感到陌生,在BMS设计当中有很多数据都是以数组的形式被引用,所以掌握对多维数组的处理是一项很重要的技能。
那么到底在BMS设计当中是怎样处理多维数组的呢?我们具体看看。
1、数组具体数据的选择:
可以使用“Selector”模块,此模块可进行从向量、矩阵或者多维信号中选择输入,一般通过设置索引模式,编辑输入索引,填写输入端口纬度,即可按照设置条件选出具体的需要元素。
2、更改数据纬度:
可使用“Reshape”模块,此模块可以更改向量或者矩阵输入信号的纬度,输出多种模式,如一维数组、行向量、列向量、自定义具体指定纬度的矩阵或者向量等,一般通过参数配置输出维度模式,填写具体的纬度关系(即行列数),即可按照设定条件进行数据纬度的更新。
3、串并联数据:
可以使用“Concatenate”模块,此模块可以串联具有相同数据类型的输入信号以创建联系输出信号,选择向量或者多维数组模式。在向量模式下,所有信号必须为向量或者单行或者单列矩阵,或者向量与单行单列矩阵的组合。输入均为向量,则输出为向量,如果输入有矩阵,则输出为单行单列矩阵。在多维模式下,使用串联纬度来指定用于串联输入数组的输出维度,如要水平或者垂直串联输入数组,则指定1或者2作为串联纬度。一般通过配置输入数目,确定模式,选择串联纬度,即可按照设定的条件进行数据的串并联。
4、数组数据运算:
可以使用“Stateflow”,利用程序流程图或者状态机,通过具体运算,改变某一个元素的值。一般可通过将数组信号输入,通过添加元素序号的方式代表具体元素,即可按照要求更新数组中具体元素的值。处理过程中要注意使用Matlab格式或者C格式表示方法的不同。
总结:
多维数组的处理应用很广泛,不过万变不离其宗,掌握了技巧,随机应变就可以应对所有开发!
来源:BMS田间小路
https://mp.weixin.qq.com/s/UoUe2b_zBJ3fKbxsW0wq1A
|