matlab 一行数据中有nan,要把每个nan之前的第一个数赋值给nan。怎么做
答案:1 悬赏:20 手机版
解决时间 2021-04-01 11:37
- 提问者网友:活着好累
- 2021-04-01 07:37
matlab 一行数据中有nan,要把每个nan之前的第一个数赋值给nan。怎么做
最佳答案
- 五星知识达人网友:第幾種人
- 2021-04-01 09:14
实际上,Matlab里大部分命令对于NaN都是无效的
非数具有传递性,且非数不能比较,像a==nan是无效的
也不能进行关系运算:a~=nan,也是不行的
但是却可以判断其属性,就楼主的题目举例说明:
clear all;clc;
a=[1 2 NaN 4 5 6 NaN 7 8 9 10 NaN 5 8]
id=isnan(a);
dd=find(id);
a(dd-1)=NaN;
a =
Columns 1 through 12
1 2 NaN 4 5 6 NaN 7 8 9 10 NaN
Columns 13 through 14
5 8
a =
Columns 1 through 12
1 NaN NaN 4 5 NaN NaN 7 8 9 NaN NaN
Columns 13 through 14
5 8追问我是要把NaN赋予连续的数值,不是让它的数量增加(要减少),但是有时候NaN连续有好几个,你的方法就不好用了追答你这属于另外一个问题了,你提的问题就是这样的。
但可以告诉你,万变不离其宗。追问“赋值给”不是"赋值成",你就告诉我
Columns 1 through 12
1 NaN NaN 4 5 NaN NaN 7 8 9 NaN NaN
Columns 13 through 14
5 8
怎么变成 1 1 1 4 5 5 5 7 8 9 9 9 5 8追答clear all;clc;
a=[1 2 NaN 4 5 6 NaN 7 8 9 10 NaN 5 8];
id=isnan(a);
dd=find(id);
a(dd-1)=NaN;
id1=isnan(a);
dd1=find(id1);
b=[1 1 1 4 5 5 5 7 8 9 9 9 5 8];
a(dd1)=b(dd1);
非数具有传递性,且非数不能比较,像a==nan是无效的
也不能进行关系运算:a~=nan,也是不行的
但是却可以判断其属性,就楼主的题目举例说明:
clear all;clc;
a=[1 2 NaN 4 5 6 NaN 7 8 9 10 NaN 5 8]
id=isnan(a);
dd=find(id);
a(dd-1)=NaN;
a =
Columns 1 through 12
1 2 NaN 4 5 6 NaN 7 8 9 10 NaN
Columns 13 through 14
5 8
a =
Columns 1 through 12
1 NaN NaN 4 5 NaN NaN 7 8 9 NaN NaN
Columns 13 through 14
5 8追问我是要把NaN赋予连续的数值,不是让它的数量增加(要减少),但是有时候NaN连续有好几个,你的方法就不好用了追答你这属于另外一个问题了,你提的问题就是这样的。
但可以告诉你,万变不离其宗。追问“赋值给”不是"赋值成",你就告诉我
Columns 1 through 12
1 NaN NaN 4 5 NaN NaN 7 8 9 NaN NaN
Columns 13 through 14
5 8
怎么变成 1 1 1 4 5 5 5 7 8 9 9 9 5 8追答clear all;clc;
a=[1 2 NaN 4 5 6 NaN 7 8 9 10 NaN 5 8];
id=isnan(a);
dd=find(id);
a(dd-1)=NaN;
id1=isnan(a);
dd1=find(id1);
b=[1 1 1 4 5 5 5 7 8 9 9 9 5 8];
a(dd1)=b(dd1);
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯