SAMA.FA 106 اشتراک گذاری ارسال شده در 21 شهریور، ۱۳۹۴ سلام از فیلترگابور که از فرکانس بالا و انرژی بردار وِژگی استخراج کردم ولی چون ابعاد برداری که از فیلتر بدست میاد زیاده برای اینکه کاهش ابعاد رو بردار انجام بدیم از PCAاستفاده می کنم ولی وقتی پارامتر بردار در کد PCA بعنوان ورودی قرار میدهم خطا میده لطفا یکی بگه چیکار کنم تا خطاش رفع شه ممنون کد :S=همون بردار ویژگی data=(S); % artificial data set of 100 variables (genes) and 10 samples [W, pc] = princomp(data'); pc=pc'; W=W'; plot(pc(1,:),pc(2,:),'.'); title('{\bf PCA} by princomp'); xlabel('PC 1'); ylabel('PC 2') % consider an artificial data set of 100 variables (e.g., genes) and 10 samples data=(S); % remove the mean variable-wise (row-wise) data=data-repmat(mean(data,2),1,size(data,2)); % calculate eigenvectors (loadings) W, and eigenvalues of the covariance matrix [W, EvalueMatrix] = eig(cov(data')); Evalues = diag(EvalueMatrix); % order by largest eigenvalue Evalues = Evalues(end:-1:1); W = W(:,end:-1:1); W=W'; % generate PCA component space (PCA scores) pc = W * data; % plot PCA space of the first two PCs: PC1 and PC2 plot(pc(1,:),pc(2,:),'.') وقتی این کد اجرا میکنم برداری که بدست میاد تمام اعداد ماتریس صفر میشه وقتی بجای data'=S قرار میدم خطای زیر میاد : خطا: Index exceeds matrix dimensions لینک به دیدگاه
ارسال های توصیه شده