2013-04-23 53 views
0

這感覺應該很簡單。MATLAB中2個向量的2列矩陣

我正在構建一個最小距離分類器,我想把feature1和feature2放到同一個矩陣中,以便我可以調用它們並獲得像這樣的答案。

featureVector(1,:) =所有feature1

featureVector(2,:) =所有feature2

我通過循環並希望把這些值到featureVector作爲循環運行。

我對MATLAB很神奇,所以我不知道如何把它寫成文字。希望這樣做有足夠的道理。

謝謝大家。

回答

1

如果您feature1是一個水平矢量,然後執行:

featureVector = [ feature1 ; feature2 ] 

品(如垂直),這樣做:

featureVector = [ feature1 , feature2 ] 

如果你不知道它的方向做,你總是可以做一個reshape

feature1 = reshape(feature1, 1, numel(feature1)) 

...什麼會讓feature1水平,鄰R:

feature1 = reshape(feature1, numel(feature1), 1) 

...什麼會讓feature1垂直。

reshape使用等,這將使從水平/垂直矢量任何向量/矩陣,以特定值一個接一個從原始源。

編輯:一個證明,它的工作原理:

>> a = [1 ; 2 ; 3 ; 4 ; 5]; 
>> b = [6 ; 7 ; 8 ; 9 ; 10]; 
>> ab = [a, b] 

ab = 

    1  6 
    2  7 
    3  8 
    4  9 
    5 10 

>> ab(2,:) 

ans = 

    2  7 

編輯:如果您feature1feature2是標量,並希望將其添加到featureVector一個接一個在每次迭代,然後執行:

featureVector = [] 

for i = 1:... 
    feature1 = ...; 
    feature2 = ...; 
    featureVector = [featureVector; [feature1, feature2]]; 
end 
+0

這是我第一次嘗試。當我在那裏做第一個選項時,它只保留feature1和feature2的最後2個值。我需要它來保持他們的一切。它在循環後輸出2x1矩陣,它應該是5x1。 – zburns12 2013-04-23 18:58:07

+0

讓我看看你的代碼。我剛剛添加了一個證明它的工作原理。 – 2013-04-23 18:58:46

+0

ratio = h1_max/h2_max; formant3 = formfreq(1); formant4 = formfreq(2); formDistance = formant4 - formant3; featureVector1 = [ratio,formDistance]; – zburns12 2013-04-23 19:01:59

0

你有沒有想過用這個?

results = [values1,values2];