- 积分
- 3620
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2014-2-12
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
现有一个经过标准化处理后的资料,格点数m=1769,时间长度n=53,由于m>n,因此做eof时需要进行时空转换。以下为我的程序:***********************************************
X = dlmread('D:、easa.txt');
[m,n]=size(X); %求空间点数和时间
[VR,DR] = eigs(X'*X/n); %计算特征值和特征向量
DR = diag(DR); %特征值
DR = DR(:); %特征值按列排列
VN = X*VR; %时空转换
T = VN'*X; %时间序列
VN = VN.*repmat(sqrt(DL'),m,1); %特征向量标准化
T = T./repmat(sqrt(DL),1,n); %时间序列标准化
D100 = DR*100./trace(X*X'/n); %方差贡献率
************************************************
但是计算得到的结果不正确,时间序列画出来的图也有问题。
巧合的是我用论坛中有人分享过的一个叫做“一键eof”的软件的时候得到的时间序列图也是这种正弦曲线,但是用fortran程序做出来的结果就是正确的。
而且还有一个问题:为什么我计算出来的特征值和特征向量都取了6组?我并没有进行任何设置,是默认的吗?
希望大家帮我看看,找出原因,感激不尽!
|
-
时间序列图,但是明显不对。
|