matlab 记一次debug的心路历程以及NaN问题的解决办法
来源:互联网 发布:python sched 编辑:程序博客网 时间:2024/06/04 19:39
这一次debug应该算的上,比较艰难困窘的一次。真挺难的,折磨了我一天多。前话不多讲,开始聊聊这次问题的产生与解决吧。老师让做图像分割与提取,然后再分类的工作,并且将其整合到一起。这个工作,我是分成两块来做的。先做分割与提取,还比较顺利。之后的特征提取与分类工作,做的还算行吧,但是测试用的图片采用的完整的大图。
在将这两块工作整合到一起的时候出现问题了,问题是哪儿呢。在区域提取的时候怎么着,都会报错,说在边缘提取的模块出现了NaN错误。然后我就找过去。哎。。。我就纳闷,开始测试的那些图片个个都挺好的,都能顺利提取出区块,为啥放到主函数就出错了呢。
然后我就开始假设,首先我猜想,应该是类型问题,为啥猜是这个问题呢。因为我将200多张图片都存到了cell类型里面了。可能在循环的时候读取不正确,导致报错。于是我在循环里面加入了一个临时变量,循环一次就将cell那一张图片矩阵赋值给临时变量,然后再进行区域提取的工作。结果还是不行。
再然后我猜想是不是数据量太大,毕竟两百张图片,有可能数据量太大,matlab直接就宕机,直接报错NaN,于是我就一个个地进行图片提取。结果还是报错。有意思的是这期间我还发现了另外的一个错误就是,开始我读取的图片都是在一个文件夹里面,顺带解决了一个逻辑错误。
然后我想这也不对,还有哪儿可能有错误呢。这个时候我发现一个有意思的事情,就是我一张一张图片测函数,结果发现有的图片没啥问题,有的图片直接就有错。这一下我就明白了。合计着原来是图片上的问题,于是我新建了一个文件夹,把一个工况下的图片放一起,单独用提取区域的函数来跑,果不其然,就是有图片出错,有图片直接就过了。后来再单独查看各个变量,发现一个变量里面会存在NaN,然后这个变量带入函数里面就出错了。找到问题的根源,我立马解决。说白了就是消除NaN留下其他有价值的值。
采用的是:
x_zhongxin(isnan( x_zhongxin)) = [];
y_zhongxin(isnan( y_zhongxin)) = [];
ct=length(y_zhongxin);
x_zhongxin是有NaN的向量。最终问题得到了解决。
happy,happy~
虽然写下来感觉没什么技术难度,但是当时被这个问题困扰的时候确实挺难受。大把大把的时间也没干嘛,就是盯着程序。不过debug了,感觉全身都舒爽了。
- matlab 记一次debug的心路历程以及NaN问题的解决办法
- 使用matlab判别的NaN
- 一次 PyTorch 的踩坑经历,以及如何避免梯度成为NaN
- python的nan,NaN,NAN
- Matlab删除包含NaN的行
- fortran关于NaN的问题
- 出现NaN问题的解决方案
- 关于NaN的问题整理
- 记一次debug经历,基础的重要性
- Date.parse Firefox返回Nan的解决办法
- TensorFlow中出现Nan值的解决办法
- IE浏览器下面 使用 JS的getDate()方法获取星期几出现Nan问题的解决办法
- 一次Debug过程的思考
- IE 下js里面new Date("2011-11-11") 出现nan的问题以及解决方法
- matlab:矩阵中对NaN的处理方式
- matlab 含有nan值的 求和 平均 nansum nanmean isnan
- Matlab 进行FFT,结果出现NAN的一种可能原因
- JavaScript中不可不知的NaN问题
- poj 1094 Sorting It All Out(java + 拓扑排序)
- poj 3020 Antenna Placement(java + 匈牙利算法)
- Java项目经验——程序员成长的钥匙
- poj 3041 Asteroids(java + 匈牙利算法)
- int main(int argc,char* argv[])详
- matlab 记一次debug的心路历程以及NaN问题的解决办法
- 关于物联网的一点畅想
- restrict关键字
- 常有关pdf、360浏览器、Chrome浏览器和win7保护眼睛的颜色设置方法总结
- 基于UDP的新一代多路传输协议—QUIC(一)
- 基于UDP的新一代多路传输协议—QUIC(二)
- Hive数据类型
- 《这一生,静待时光检验》读后笔记
- 去掉按钮阴影的方法和消除表格加背景颜色后出现的缝隙