关于matlab中nan读取的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于matlab中nan读取的问题相关的知识,希望对你有一定的参考价值。

我用fgetl依次读取txt文件中的每一行,每行含有8个小数,都是逗号间隔开,但是有时会有“nan”出现,也是由逗号和其它小数隔开。我用strread格式读取每一行中的这8个数据,并对每个数据做相应的加减乘除运算,然后把这新的8个数据写到一个新的文件中。

但是遇到“nan”,就不能像小数一样格式读取,程序会停止。求助如何能自动判别“nan”。如果是“nan”,新文件中相应位置也写上“nan”。

急需解决这个问题,如有高手指点,不胜感激!

只要数组中存在nan(无论是多个还是仅有一个,可以使用isnan找到nan的位置),max、sum等函数默认都会返回nan。一个比较好的办法是函数中加入参数,例如
aaa=max(a,
'omitnan');
但不同版本的matlab用法可能不同,具体请查询相关函数的说明;另外,有些工具包中也提供了nanmean等函数。
参考技术A 没有试过

感觉上可能是由于字符的关系

你的判断中加一个判断字符串的ischar试试看吧
参考技术B 给你一点提示
isnan指令是唯一能正确判断非数nan
的指令,
然后你就可以用这个指令,去逐个判断你的数据,对其进行相应操作,
举个应用的例子供你参考:
a=nan;
>>
isnan(a)
ans
=
1
参考技术C 手上没有matlab

你试一下,将文件里面的nan改成NaN看看。

从Excel向MATLAB中导入数据出现了nan怎么处理

是因为数据过大过小导致?

  1、在matlab中生成数据,并且写入到excel文件中。具体代码如下图所示:

  2、下面来看一下生成的myExample.xlsx文件里面是否含有matlab所生成的数据。有图中可以看出,生成的数据已经全部写入了myExample.xlsx文件。

  3、从excel的第一个worksheet中读取数据,代码如下图所示:

  4、从上一步生成的excel文件myExample.xlsx中读取局部的数据,具体代码及结果如下图所示:

  5、读取一列数据,从excel文件myExample.xlsx中读取一整列的数据,具体代码及结果如下图所示:

  6、从excel文件myExample.xlsx中分别读取数值型、文本型和未处理的数据,具体代码及结果如下图所示:

  

参考技术A 可以帮你看一下,我估计是有部分的文字,所有才有nan = not a number 参考技术B 问题很久前的了但还是回答一下吧。。。。我遇到过很多次这个毛病哈哈。但最后都是因为数据有问题,第一次是因为有些数据结尾多打了空格“ ”会导致读入程序中显示NAN, 这个可以通过全选excel,格式“靠右”来检查有没有多打空格。第二次就是现在,发现有些数字可以正确读取,但大多数都是NAN,这个有些数字小数点后只有4位,但大多数都是8位,原来是因为有的数字过长(谜之无语) 参考技术C 可能那些单元格根本就不是数值类型吧。。本回答被提问者采纳

以上是关于关于matlab中nan读取的问题的主要内容,如果未能解决你的问题,请参考以下文章

关于MATLAB读取端口数据的问题

MATLAB中出现NAN怎么回事

matlab 关于保存图像的问题

在matlab中NAN是啥意思?

MATLAB中出现NAN怎么回事

从Excel向MATLAB中导入数据出现了nan怎么处理