关于matlab中nan读取的问题 10

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

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

急需解决这个问题,如有高手指点,不胜感激!
展开
 我来答
元烁蒙沛儿
2020-06-29 · TA获得超过3628个赞
知道大有可为答主
回答量:3047
采纳率:28%
帮助的人:391万
展开全部
只要数组中存在nan(无论是多个还是仅有一个,可以使用isnan找到nan的位置),max、sum等函数默认都会返回nan。一个比较好的办法是函数中加入参数,例如
aaa=max(a,
'omitnan');
但不同版本的matlab用法可能不同,具体请查询相关函数的说明;另外,有些工具包中也提供了nanmean等函数。
lamsychen
2009-08-04 · TA获得超过456个赞
知道答主
回答量:146
采纳率:0%
帮助的人:112万
展开全部
没有试过

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

你的判断中加一个判断字符串的ischar试试看吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
封诗乔朝雨
2020-06-25 · TA获得超过3746个赞
知道大有可为答主
回答量:3065
采纳率:28%
帮助的人:390万
展开全部
给你一点提示
isnan指令是唯一能正确判断非数nan
的指令,
然后你就可以用这个指令,去逐个判断你的数据,对其进行相应操作,
举个应用的例子供你参考:
a=nan;
>>
isnan(a)
ans
=
1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wacs5
2009-08-04 · TA获得超过1.6万个赞
知道大有可为答主
回答量:3724
采纳率:82%
帮助的人:2816万
展开全部
手上没有matlab

你试一下,将文件里面的nan改成NaN看看。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式