Code Results?
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Hi,
I have the following code ,but I have a problem in the results,that Mz is just single value 17.619 ,despite it should be a matrix.Also Md is a matrix(1000*1000) but all elements in it has the same value.Can anybody help,please?
clear all;
clc
load lab2_data;
x = radar_noise; % input signal
K = 1000; % K CAPITAL is Block Size
L = length(x) - mod(length(x),K); % only full blocks
zkd = reshape(x(1:L), K, []);
Md=zeros(L,L); % M ZEROS covariance matrix L*L
for i=1:size(zkd,1); % LOOP covariance matrix calculation
Mz=zkd(i,:)*zkd(i,:)';
Md=Md+Mz;
end
Md=Md/K;
0 Commenti
Risposte (1)
Sean de Wolski
il 14 Dic 2011
You duplicate question was answered here:
Walter's:Answer and in another thread that I answered but appears to have been deleted.
5 Commenti
Walter Roberson
il 14 Dic 2011
Your block size is larger than the number of blocks you have, so LL=length(zkd) is going to return the block size (K) rather than the number of blocks (L) . You then initialize Md to be LL by LL, which is going to be K by K. Your zkd(i,:)*zkd(i,:)' is going to result in L by L, and an L by L matrix is too small to add to a K by K matrix.
Drop the LL=length(zkd); line, and use Md=zeros(L,L)
Remember, length() does not give you the size of the second dimension of an array, it gives you the size of the _largest_ dimension of the array no matter which position it occurs in.
Vedere anche
Categorie
Scopri di più su Logical in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!