simulink中固定大小矩阵和可变大小矩阵创建的几个陷阱

本文介绍了在Simulink环境中创建固定大小和可变大小矩阵时可能遇到的问题及解决方法。在创建固定大小矩阵时,若通过变量指定尺寸,可能导致编译器误判为可变大小矩阵,从而引发错误。解决之道是直接定义矩阵尺寸。对于可变大小矩阵的创建,文中并未详细展开。
摘要由CSDN通过智能技术生成


Simulink进行数据处理时经常需要在matlab function里面创建矩阵,但一不留神就会出现创建的矩阵维度错误的问题,有一些比较明显的错误根据提示就知道如何修改,但有一些不会给出明显的提示,如下面这个报错,错误认为input SFunction的输入维度无效,这种bug不可能会跑到底层的input SFunction下面去debug,只能在你的程序里解决。

Error in port widths or dimensions. Invalid dimension has been specified for input ' SFunction

1 固定大小矩阵的创建

在m脚本或者m函数中是可以创建类似

width = 2;
a = zeros(1,width);

这样的固定大小矩阵,但是在Simulink环境下,如果width在workspace里面, 然后你将width作为matlab function的输入,这样就会出现矩阵维度不能识别或者维度错误的问题。原因是你这样写的本意可能是想创建一个固定size的矩阵,但是compiler会认为这是一个可变大小的矩阵,然后可变大小的矩阵实际上还需要设置一些东西,你没有设置,因此会报错!

所以使用固定size矩阵最好的方法是直接写出矩阵大小&#

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吉大秦少游

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值