概述
文章目录
- 1 固定大小矩阵的创建
- 2 可变大小矩阵的创建
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矩阵最好的方法是直接写出矩阵大小,而不是将size作为输入传入matlab function。
我遇到过类似的问题,源文件和
最后
以上就是乐观金针菇为你收集整理的simulink中固定大小矩阵和可变大小矩阵创建的几个陷阱1 固定大小矩阵的创建的全部内容,希望文章能够帮你解决simulink中固定大小矩阵和可变大小矩阵创建的几个陷阱1 固定大小矩阵的创建所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复