声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1363|回复: 7

[综合讨论] 数据中有空字符的时候矩阵除法怎么实现呢?

[复制链接]
发表于 2008-11-3 17:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我的数据中存在NaNs,所以在进行矩阵的除法运算时得到的结果全部是NaN,不知道这种情况该怎么处理?
例如:
clear all
close all
clc

y = randn(10,1);
y(3) = nan;
a = rand(10,10);
x = a\y
回复
分享到:

使用道具 举报

发表于 2008-11-3 17:34 | 显示全部楼层

回复 楼主 wuqiong_cea 的帖子

这个看你数据有没有错误
或者,直接把nan 删掉
发表于 2008-11-4 07:53 | 显示全部楼层
我之前也碰到过类似的情况
我的做法是把NaN这个元素用某个数字替换,然后继续运算
具体数字看具体情况了

评分

1

查看全部评分

发表于 2008-11-4 08:17 | 显示全部楼层

回复 楼主 wuqiong_cea 的帖子

较赞同小西的看法, 看看数据有没有错误! 或进行处理, 具体作为看具体情况
如楼主的例子, 个人我会去除有问题的数据
y = randn(10,1); y(3) = nan; a = rand(10,10);
y(3)=[]; a(3,:)=[]; a(:,3)=[];
x = a\y

评分

1

查看全部评分

 楼主| 发表于 2008-11-4 09:33 | 显示全部楼层
谢谢大家的支持
我还有一个问题:如果nan字符本身代表的意思是某个时刻物理量的测量值,我删除后就认为这个时刻没有数据,而后面的数据的发生时刻会提前一个时间单位,这种情况该怎么处理呢?
 楼主| 发表于 2008-11-4 09:35 | 显示全部楼层
我测量的数据中由于仪器的故障问题肯定有某些时刻没有记录到数据,这些记录不到的数据点的值我就用nan字符来代替,就得到了这种含有nan字符的时间序列
 楼主| 发表于 2008-11-4 10:03 | 显示全部楼层
我用一下办法处理了一下:
其中N是原始数据长度,yy是将nan去掉后计算结果,y是最终补nan后结果,ind是寻找的原始序列中是nan的坐标
gen = 1;
y = zeros(N,1);
y(ind) = NaN;
for ii = 1:N
    if ~isnan(y(ii))
        y(ii) = yy(gen);
        gen = gen+1;
    end
end

评分

1

查看全部评分

发表于 2008-11-4 11:20 | 显示全部楼层
原帖由 wuqiong_cea 于 2008-11-4 09:35 发表
我测量的数据中由于仪器的故障问题肯定有某些时刻没有记录到数据,这些记录不到的数据点的值我就用nan字符来代替,就得到了这种含有nan字符的时间序列

针对data loss的问题, 一般我的做法是curve fit, 参考下
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-18 06:51 , Processed in 0.099358 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表