mesh或surf画三维图时,x和y参数可以随意调换吗
我想画用wavelet处理数据后的三维图,用surf画的是下面附件的样子。现在我想把x轴显示为scale数据,y轴显示为length数据,应该怎么做呢?如果直接更改输入参数的位置surf(t,s,c);改为surf(s,t,c);则出错??? Error using ==> surf at 78
Data dimensions must agree.
Error in ==> detect at 182
surf(s,t,c);
应该怎么解决呢,往大侠指点,谢谢
[ 本帖最后由 ChaChing 于 2010-7-31 22:53 编辑 ] 给c转置下试试
回复 楼主 liminwang0311 的帖子
个人水平专业有限, 看不太清LZ问的!?基本上参数只要符合函数输入需求即可!
Data dimensions must agree, 表示参数间维数有问题!
回复 板凳 ChaChing 的帖子
可能是我没说清楚,你看我那张图,x轴是length,y轴是scale,我现在想让x轴显示scale而y轴显示length,用surf或mesh函数做得到吗?回复 地板 liminwang0311 的帖子
我想应该可以! 但参数间维数应一致建议楼主简化下举例, 如此好试! :loveliness:
求助完整格式:出错代码和出错提示 !!
回复 5楼 ChaChing 的帖子
好的,我把代码贴出来,正确的代码是:
%构造一个信号
t1=1:500; t2=501:1000; t3=1001:1504;
s1=sin(0.02*t1); s2=sin(0.2*t2); s3=sin(0.02*t3);
t=; x=;
%作出这个信号图像
figure; subplot(221); plot(x); axis tight;%坐标范围设为数据上下限
title('original signal')
%用bior3.9小波对信号进行连续小波变换,尺度为2
s=2:2:10; c = cwt(x,s ,'bior3.9');
subplot(223); surf(t,s,c); axis tight;%坐标范围设为数据上下限
title('Three-dimensional plot of the wavelet transform of thedisplacement data');
xlabel('length','fontsize',10,'rotation',15);
ylabel('scale','fontsize',10,'rotation',-28);
zlabel('wavelet coefficients','fontsize',10);
运行这段代码就可以画出x轴为length,y轴为scale的图。
把surf的参数t 和s对调则出现下面的错误:
??? Error using ==> surf at 78
Data dimensions must agree.
Error in ==> test at 21
surf(s,t,c);
bior3.9小波的尺度为2-10
[ 本帖最后由 ChaChing 于 2010-8-2 00:06 编辑 ] 2F说的, 楼主没试吗?
subplot(223); surf(s,t,c'); axis tight;%坐标范围设为数据上下限
页:
[1]