MATLAB: Error using plot Vectors must be the same length.

autocorrelationMATLABmatlab coder

good evening family I was calculating the autocorrelation of the function cos (wt) but every time I compile I get an error like Error using plot Vectors must be the same length.
Help me please.
this is my code :
function autocorrx
f0=20; N=1000 ;
k=5; Tmax=k/f0;
t=0/2:Tmax/N:Tmax;
x=cos(2*pi*f0*t);
subplot(1,1,1);
plot(t,x);
axis([0 0.1 -1 1]);grid;
xlabel('t(s)');
ylabel('cos(wt)');
C = xcorr(x,x)*Tmax;
subplot(2,2,2) ; plot(t,C) ;
axis([-0 0.1 -1 1]);
grid
xlabel ('t') ;
ylabel ('Cxx(t)') ;
title ('autocorrelation ')
end

Best Answer

The cross correlation function xcorr() will produce an output with 2*M-1 elements where M is the number of elements in the input. Perhaps you want to plot the results as a function of the lag.
[C,lags]= xcorr(x,x);
C = C*Tmax; % <--- this is from your code;
plot(lags,C);
Note that your subplots are not defined correctly. Assuming you want two vertically stacked subplot, the subplot definitions should be
subplot(2,1,1)
subplot(2,1,2)
Related Question