matlab NaN值处理
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/11 23:16:09
matlab NaN值处理
原始数据如图.现在需要把图中每列的NAN值变成本列第一个成为非NAN值.比如第一列第一个数据处理成5.5,3-5行的NAN值变成7.3,第二列1:-4行的变成5.4,第四列1-4行的变成13.2886.求用for循环这样处理的代码.
xx=[
5.30000000000000\x05NaN\x0525.6028000000000\x05NaN
5.50000000000000\x05NaN\x0526.6128000000000\x05NaN
NaN\x05NaN\x0526.5508000000000\x05NaN
NaN\x05NaN\x0525.7269000000000\x05NaN
NaN\x055.40000000000000\x0525.2396000000000\x0513.2886000000000
7.30000000000000\x055.60000000000000\x0525.3371000000000\x0513.6641000000000
]
结果
原始数据如图.现在需要把图中每列的NAN值变成本列第一个成为非NAN值.比如第一列第一个数据处理成5.5,3-5行的NAN值变成7.3,第二列1:-4行的变成5.4,第四列1-4行的变成13.2886.求用for循环这样处理的代码.
xx=[
5.30000000000000\x05NaN\x0525.6028000000000\x05NaN
5.50000000000000\x05NaN\x0526.6128000000000\x05NaN
NaN\x05NaN\x0526.5508000000000\x05NaN
NaN\x05NaN\x0525.7269000000000\x05NaN
NaN\x055.40000000000000\x0525.2396000000000\x0513.2886000000000
7.30000000000000\x055.60000000000000\x0525.3371000000000\x0513.6641000000000
]
结果
for i = size(data,1)-1:-1:1
temp = isnan(data);
data(i,temp) = data(i+1,temp);
end
再问: ??? Index exceeds matrix dimensions.
再答: data = xx;
for i = size(data,1)-1:-1:1
temp = isnan(data(i,:));
data(i,temp) = data(i+1,temp);
end
再问: 已经 解决 求Q点Q.或we点ixin 我的3644点47506.本人正在进行基于MATLAB的程序化交易研究。
再答: 一般都是用前面的数据,不会用后面的数据的。
temp = isnan(data);
data(i,temp) = data(i+1,temp);
end
再问: ??? Index exceeds matrix dimensions.
再答: data = xx;
for i = size(data,1)-1:-1:1
temp = isnan(data(i,:));
data(i,temp) = data(i+1,temp);
end
再问: 已经 解决 求Q点Q.或we点ixin 我的3644点47506.本人正在进行基于MATLAB的程序化交易研究。
再答: 一般都是用前面的数据,不会用后面的数据的。