[MatLab] Mutua correlazione in matlab
Salve ragazzi ho un "piccolo" problema con Matlab, devo calcolare la mutua correlazione tra due segnali . Questo è il codice:
data_file_z=importdata('....');
data_file_x=importdata('....');
%% creo asse tempo
fc_Z=10240;
sz=data_file_z(1,:);
sx=data_file_x(1,:);
time=linspace(0,length(sz)/fc_Z,length(sz));
xmcory=xcorr(data_file_z,data_file_x);
plot (time,xmcory,'r'), grid on
Dove sbaglio???? mi da l'errore : "Vectors must be the same lengths" in plot... Perchè?
Ps: se c'è differenza di lunghezza tra i due vettori, quello più corto viene riempito con tutti zeri giusto?
data_file_z=importdata('....');
data_file_x=importdata('....');
%% creo asse tempo
fc_Z=10240;
sz=data_file_z(1,:);
sx=data_file_x(1,:);
time=linspace(0,length(sz)/fc_Z,length(sz));
xmcory=xcorr(data_file_z,data_file_x);
plot (time,xmcory,'r'), grid on
Dove sbaglio???? mi da l'errore : "Vectors must be the same lengths" in plot... Perchè?
Ps: se c'è differenza di lunghezza tra i due vettori, quello più corto viene riempito con tutti zeri giusto?
Risposte
"mdfmdf":
Ps: se c'è differenza di lunghezza tra i due vettori, quello più corto viene riempito con tutti zeri giusto?
direi di no, se occorrono devi inserirli con un'istruzione prima di plot
quello che dici tu può avere senso se la lunghezza viene stabilita a priori inizializzando un vettore nullo e quindi gli elementi che non vengono sovrascritti rimangono nulli