No products are associated with this question.
Hi Lisa, To use plot3, you must have your time (position) and scale vectors as matrices because the CWT coefficients are in a matrix.
You can use meshgrid() to transform your time and scale vectors into matrices suitable for plot3()
t = 1:1024; a = 1:30; Wt = abs(randn(30,1024)); [T,A] = meshgrid(t,a); plot3(T,A,Wt); xlabel('time'); ylabel('Scale'); zlabel('CWT magnitude');
However, I think you may find surf() better here
surf(t,a,Wt); shading interp; xlabel('time'); ylabel('scale'); zlabel('CWT magnitude');
I don't think plot3 is appropriate for your purpose. I think you probably better off using image or imagesc.
Hi Lisa, If I remember correctly you are using your own CWT algorithm, not MATLAB's cwt() or cwtft(). Is that correct? Are you coefficients in a matrix scale-position? I think you want surf
load vonkoch vonkoch=vonkoch(1:510); len = length(vonkoch); cw1 = cwt(vonkoch,1:32,'sym2','plot'); % cw1 is 32x510 surf(1:510,1:32,cw1); shading interp; xlabel('Position'); ylabel('Scale'); zlabel('CWT Coefficients'); colormap jet; view([-27 42]);
Keep in mind that if you are using a complex-valued analyzing wavelet, you will have to input the moduli (abs()), or the real or imaginary parts.