2012-08-10 126 views
0

我有一個1024x704x256圖像,我已將其重組爲2D矩陣。每行代表一個能量通道,每列代表一個像素。我執行PCA,以減少與所述代碼頻帶的數量:使用eigs或eig縮小尺寸

A=A-repmat(mean(A,2),1,size(A,2)); 
[V, D] = eig(cov(A')); 
Evalues = diag(D); 
pc = V * A; 

,其中A =平均值調整的2D數據集,V =矩陣本徵向量,和特徵值的d =矩陣。

我的問題是V和D的輸出(使用eigs或eig)會自動按升序排列。在較小的數據集之前,我還沒有使用這些函數來解決這個問題。我需要知道哪些向量/值對與矩陣A中的行對應以供進一步分析。有任何想法嗎?

+0

PCA的目的是將原始數據轉換爲一組正交分量。因此,您*有*將信件放到原始數據集中的行中。 – Mehrwolf 2012-08-11 23:27:07

回答

1

本徵值/本徵矢量問題可被定義爲

A*V = lambda*V 

lambda其中標量是(特徵值),和V是向量(特徵向量)。

據我所見,特徵值和特徵向量也沒有與矩陣A中的各行有任何特定的對應關係。

你能詳細說明爲什麼你不希望你的特徵值/向量被排序嗎?

+0

謝謝你的迴應。我想將變量的數量從256減少到6或更少。當我減少變量的數量時,我不確定我將不可避免地保留哪些變量。也許這不是eigs函數的問題,但是我被混淆了有序輸出,之前收到了非遞增輸出。 – Kathy 2012-08-15 18:58:21

+0

嗯......如果內存服務,高效的特徵值/矢量發現算法返回最大特徵值/矢量對* first *,所以它完全是*意想不到的*如果eig()的輸出*不會*排序... – 2012-08-15 20:19:33