ورود

View Full Version : تصحیح خطاIndex exceeds matrix dimensions



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

لطفا یکی راهنمایی کنه ایراد کد کجاست؟