sama.fa
جمعه 03 مهر 1394, 12:36 عصر
سلام
من از کاهش ابعاد بردار ویژگی استفاده کردم بعد اینکه ماتریس کاهش یافته رو به کد اعمال می کنیم خطای را می دهد
ماتریس کاهش یافته 40*33 هستش.
کد :
O = 23; %Number of coefficients in a vector
T = 28; %Number of vectors in a sequence
nex = number_of_images_for_training; %Number of sequences % nex = 5;
M = 1; %Number of mixtures
Q = numstates; %Number of states %Q = 4 ;
cov_type = 'diag';
transmat0 = create_transmat(Q);
models= struct();
for subject = 1:40
data_fisher = reshape(data_set(1:(644 * nex), subject), 23, (28 * nex));
%%%data_fisher(:,2:2:end) = data_fisher(end:-1:1,2:2:end);
prior0 = [1 zeros(1,Q-1)];
mixmat0 = ones(Q,1);
Sigma0=[];
labels =[];
for states = 1:28:(28 * nex)
img = data_fisher(:,states:states + 27)';
labels0 = segment_image(img, Q, 3, 20);
labels = [labels ;labels0];
end
mu0=[];
for i = 1:Q
mu0(:,i) = mean(data_fisher(:,labels == i), 2);
end
for i = 1:Q
Sigma0(:,:,i) = diag(var(data_fisher(:,labels == i),0 ,2 ));
end
%mu0=mu';
data_hm = reshape(data_set(1:(644 * nex), subject), 23, 28, nex);
[LL, prior1, transmat1, mu1, Sigma1, mixmat1] = ...
mhmm_em(data_hm, prior0, transmat0, mu0, Sigma0, mixmat0 , 'max_iter', 30,'adj_trans',0,'adj_mix',0,'adj_Sigma',0, 'adj_prior', 0,'cov_type',cov_type);
%LL
models(subject).mu = mu1;
models(subject).Sigma = Sigma1;
models(subject).prior = prior1;
end
خطا :
Index exceeds matrix dimensions
لطفا یکی راهنمایی کنه ایراد کد کجاست؟
من از کاهش ابعاد بردار ویژگی استفاده کردم بعد اینکه ماتریس کاهش یافته رو به کد اعمال می کنیم خطای را می دهد
ماتریس کاهش یافته 40*33 هستش.
کد :
O = 23; %Number of coefficients in a vector
T = 28; %Number of vectors in a sequence
nex = number_of_images_for_training; %Number of sequences % nex = 5;
M = 1; %Number of mixtures
Q = numstates; %Number of states %Q = 4 ;
cov_type = 'diag';
transmat0 = create_transmat(Q);
models= struct();
for subject = 1:40
data_fisher = reshape(data_set(1:(644 * nex), subject), 23, (28 * nex));
%%%data_fisher(:,2:2:end) = data_fisher(end:-1:1,2:2:end);
prior0 = [1 zeros(1,Q-1)];
mixmat0 = ones(Q,1);
Sigma0=[];
labels =[];
for states = 1:28:(28 * nex)
img = data_fisher(:,states:states + 27)';
labels0 = segment_image(img, Q, 3, 20);
labels = [labels ;labels0];
end
mu0=[];
for i = 1:Q
mu0(:,i) = mean(data_fisher(:,labels == i), 2);
end
for i = 1:Q
Sigma0(:,:,i) = diag(var(data_fisher(:,labels == i),0 ,2 ));
end
%mu0=mu';
data_hm = reshape(data_set(1:(644 * nex), subject), 23, 28, nex);
[LL, prior1, transmat1, mu1, Sigma1, mixmat1] = ...
mhmm_em(data_hm, prior0, transmat0, mu0, Sigma0, mixmat0 , 'max_iter', 30,'adj_trans',0,'adj_mix',0,'adj_Sigma',0, 'adj_prior', 0,'cov_type',cov_type);
%LL
models(subject).mu = mu1;
models(subject).Sigma = Sigma1;
models(subject).prior = prior1;
end
خطا :
Index exceeds matrix dimensions
لطفا یکی راهنمایی کنه ایراد کد کجاست؟