如何在Simulink中实现矩阵向量相乘并绘制结果向量?
在Simulink中实现矩阵-向量乘法并绘制结果
一、完成矩阵与向量的乘法
- 打开Simulink,新建空白模型。
- 添加所需模块:
- Constant模块:用于定义6×6矩阵。双击模块,在「Value」栏输入符合MATLAB语法的矩阵,例如
[1 2 3 4 5 6; 2 3 4 5 6 1; 3 4 5 6 1 2; 4 5 6 1 2 3; 5 6 1 2 3 4; 6 1 2 3 4 5](替换为你的实际矩阵)。 - Constant模块:再添加一个用于定义6×1列向量(矩阵乘法要求向量为列向量,若你是1×6行向量,需转置为6×1后再参与运算),「Value」栏输入向量,例如
[1;2;3;4;5;6]。 - Matrix Multiply模块:从Math Operations库中选取,将矩阵和向量的输出分别连接到该模块的两个输入端,模块会自动完成6×6矩阵与6×1列向量的乘法,输出6×1列向量。若需要1×6行向量,可再加一个Transpose模块(Math Operations库)对结果转置。
- Constant模块:用于定义6×6矩阵。双击模块,在「Value」栏输入符合MATLAB语法的矩阵,例如
二、绘制结果向量(重点)
方式1:Scope模块直接查看+MATLAB绘图
- 添加Scope模块(Sinks库),将乘法(或转置后)的输出连接到Scope输入。
- 双击Scope,点击工具栏齿轮图标打开「Configuration Properties」,在「Data History」选项卡勾选「Save data to workspace」,设置变量名(如
output_vec),格式选「Array」。 - 运行模型后,回到MATLAB命令行执行绘图命令:
plot(output_vec); % 折线图 % 或绘制柱状图 bar(output_vec);
方式2:To Workspace模块+MATLAB绘图
- 添加To Workspace模块(Sinks库),连接乘法输出到该模块。双击模块设置变量名(如
result),保存格式选「Array」。 - 运行模型后,在MATLAB命令行自定义绘图:
bar(result); title('矩阵-向量乘法结果'); xlabel('元素索引'); ylabel('元素数值');
注意事项
- 务必保证维度匹配:6×6矩阵只能与6×1列向量相乘,若原始向量是1×6行向量,需先通过Transpose模块转置为6×1列向量。
- 可通过快捷键
Ctrl+E打开Simulink库浏览器,搜索模块名称快速定位所需组件。
内容的提问来源于stack exchange,提问作者Ahmed Amin
相关产品推荐
相关产品推荐

