wuqiong_cea 发表于 2008-11-3 17:13

数据中有空字符的时候矩阵除法怎么实现呢?

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

y = randn(10,1);
y(3) = nan;
a = rand(10,10);
x = a\y

sigma665 发表于 2008-11-3 17:34

回复 楼主 wuqiong_cea 的帖子

这个看你数据有没有错误
或者,直接把nan 删掉

jww100 发表于 2008-11-4 07:53

我之前也碰到过类似的情况
我的做法是把NaN这个元素用某个数字替换,然后继续运算
具体数字看具体情况了

ChaChing 发表于 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

wuqiong_cea 发表于 2008-11-4 09:33

谢谢大家的支持
我还有一个问题:如果nan字符本身代表的意思是某个时刻物理量的测量值,我删除后就认为这个时刻没有数据,而后面的数据的发生时刻会提前一个时间单位,这种情况该怎么处理呢?

wuqiong_cea 发表于 2008-11-4 09:35

我测量的数据中由于仪器的故障问题肯定有某些时刻没有记录到数据,这些记录不到的数据点的值我就用nan字符来代替,就得到了这种含有nan字符的时间序列

wuqiong_cea 发表于 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

ChaChing 发表于 2008-11-4 11:20

原帖由 wuqiong_cea 于 2008-11-4 09:35 发表 http://www.chinavib.com/forum/images/common/back.gif
我测量的数据中由于仪器的故障问题肯定有某些时刻没有记录到数据,这些记录不到的数据点的值我就用nan字符来代替,就得到了这种含有nan字符的时间序列
针对data loss的问题, 一般我的做法是curve fit, 参考下
页: [1]
查看完整版本: 数据中有空字符的时候矩阵除法怎么实现呢?