赋值具有的非单一 rhs 维度多于非单一下标数?
写matlab的时候总是能碰见这个问题,总结一下可能的情况:
1.矩阵维数不对应,比如b×m 只能与 m×n相乘,这个时候需要你查看变量空间,看看你设置的地方是否正确,此外还要看一些函数,有些封装的函数你在原理不太清楚的情况下看一看输出的矩阵格式,再进行调整代码
今天自己在录制一段视频,并且学习了转换成帧的方法,使用到之前写的跟踪算法中时发现不能读取,检查了一会发现维数不对,仔细回忆了一下图像的知识,灰度图和RGB图的维数是不一样的会导致出错,因此采用了一个rgb转灰度的函数:
即:
grayframe = rgb2gray(frame);
进行修改后成功读取。
顺便说一句,一定要手动检查这个问题,如何做呢
- 开启debug模式,开始调试,一行一行看你每一个变量的结果矩阵
- 观察矩阵的维数是否对应,那么到错误那行就可以看出来了
- 有时候就是缺少推导,最好是在纸上写一遍流程看看矩阵对不对
最近看吴恩达的视频,有一节就讲检查你的维数,他自己在debug时候也会在纸上写一遍,所以这是很不错的办法!!!