文章目录
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矩阵最好的方法是直接写出矩阵大小&#