爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 8169|回复: 13

[讨论] 求助帖,这个小波分析怎么改啊

[复制链接]

新浪微博达人勋

发表于 2013-4-16 21:26:56 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
>> clear;
load q.txt
sst =q;
n=length(q);
variance = std(sst).^2;
sst = (sst - mean(sst))./sqrt(variance);
dt = 1;
year = [0:n-1]+ 1644.0 ;
xlim = [1644,1911];   %
pad = 1;      
dj = 1/12;     
s0 = 1/2*dt;   
j1 = 6.5/dj;   
lag1 = 0.72;  
mother = 'Morlet';
[wave,period,scale,coi] = wavelet(sst,dt,pad,dj,s0,j1,mother);
power = (abs(wave)).^2 ;  %计算小波系数的模的平方
modulus=abs(wave);  %计算小波系数的模
variance1=sum(power')./n;%计算小波方差
%画小波系数实部等值线图
fig1=figure;
%subplot(3,1,1)
levels = [0,0.5,1.0,1.5,2.0,2.5];
v = [0,0.5,1.0,1.5];
Yticks = 0:5:30;
[c,h]=contour(year,period,real(wave),levels,'k-');
clabel(c,h,v,'fontsize',5);
xlabel('年份/year')
ylabel('周期/年 period/year')
title('(a)')
set(gca,'XLim',xlim(:))
set(gca,'YLim',[0 30], ...
    'YDir','default', ...
'YTick',Yticks(:), ...
'YTickLabel',Yticks)
hold on
levels = [-0.5,-1.0,-1.5,-2.0,-2.5];
v = [-0.5,-1.0,-1.5];
[c,h] = contour(year,period,real(wave),levels,'r--');
clabel(c,h,v,'fontsize',5);
hold on
% 画小波方差图
fig2=figure;
%subplot(3,1,2)
plot(period,variance1,'k-')
hold on;
levels= [1,5,10,15,20,25,30,35,40,45];
title('(b)')
set(gca,'XLim',[1,50], ...        
    'XTick',levels,...
   'XTickLabel',levels)
xlabel('周期/a')
ylabel('方差 variance')
hold on
%画小波系数模
fig3=figure;
%subplot(3,1,3)
levels = [0,0.5,1.0,1.5,2.0,2.5];
v = [0,0.5,1.0,1.5];
Yticks = [0:5:30];
[c,h]=contour(year,period,abs(wave),levels,'k-');
clabel(c,h,v,'fontsize',5);
title('(c)')
xlabel('年份/year')
ylabel('周期/年 period/year')
set(gca,'XLim',xlim(:))
set(gca,'YLim',[0 30], ...
    'YDir','default', ...
'YTick',Yticks(:), ...
'YTickLabel',Yticks)
??? Error using ==> minus
Matrix dimensions must agree.
老是出错,菜鸟也不知道怎么改。另附上我的数据(第一幅图),想做个周期分析还有像第二幅图那样的结果的。不知道我的这些数据能不能做出来。求大家帮帮忙
QQ截图20130416212140.jpg 1.jpg

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-4-16 23:20:41 | 显示全部楼层
这个是实部系数图。
还有一个方差图。
你的出现什么错误提示?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-4-17 08:50:20 | 显示全部楼层

??? Error using ==> minus
Matrix dimensions must agree.
老是出现这个错,我也不知道怎么改
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-4-17 08:51:21 | 显示全部楼层
kongfeng0824 发表于 2013-4-16 23:20
这个是实部系数图。
还有一个方差图。
你的出现什么错误提示?

我的QQ754613382,能咨询咨询你吗?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-4-17 10:57:33 | 显示全部楼层
狂奔的蜗牛 发表于 2013-4-17 08:50
??? Error using ==> minus
Matrix dimensions must agree.
老是出现这个错,我也不知道怎么改

你的数组维数不对。需要改成符合的维数。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-4-17 13:58:55 | 显示全部楼层
kongfeng0824 发表于 2013-4-17 10:57
你的数组维数不对。需要改成符合的维数。

数组维数改了之后,现在又出现??? Undefined command/function 'wavelet'.
这个错误了。这是什么错误啊
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-4-17 21:18:25 | 显示全部楼层
狂奔的蜗牛 发表于 2013-4-17 13:58
数组维数改了之后,现在又出现??? Undefined command/function 'wavelet'.
这个错误了。这是什么错误啊

wavelet是一个函数,你查一下是否是外调的函数?如果不是,就在你的这个程序之中。看看是不是哪里名称出现错误了。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-6-27 07:49:07 | 显示全部楼层
狂奔的蜗牛 发表于 2013-4-17 13:58
数组维数改了之后,现在又出现??? Undefined command/function 'wavelet'.
这个错误了。这是什么错误啊

不知道你解决问题了没有,这个就是你要把wavelet等.m文件和你的程序文件放在一起。因为你的程序中要调用它们。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-6-28 01:45:22 | 显示全部楼层
wavelet.m是第三方的程序,要add to path
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-8-14 20:02:50 | 显示全部楼层
一直用fortran,改天也试一下这个matlab 的
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

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