2011-12-18 109 views
1

假設我有這樣的基質,A:Matlab的神經網絡的輸入和輸出maniuplation

A=[ 25  11 2010 10 23 75 
    30  11 2010 11 24 45 
    31  12 2010 19 24 44 
    31  12 2010 22 27 32 
    1  1 2011 14 27 27 
    2  12 2011 15 28 30 
    3  12 2011 16 24 42 ]; 

前5列表示一些測量參數的輸入和最後一列是相應的輸出。行數是進行這些測量的次數。

我想使用帶有函數newgrnn(或任何其他NN函數)的Matlab神經網絡GRNN來訓練數據直到第5行並測試剩餘的2行輸入以評估它們的相應輸出。我已經嘗試了許多次來做到這一點,但它總是給我錯誤,程序沒有正確運行。我看了newgrnn幫助例子,但它只是一個輸入,而我在這個例子中有5個輸入。

我的問題是我們如何把輸入和輸出放在newgrnn函數結構中。實際上,我有非常大的矩陣,有22個輸入和一個輸出,我的矩陣的大小是26352乘23,但上面只是示例。

+0

您已經嘗試了很多次 - 您究竟試過了什麼?你能告訴我們一些你試過的代碼嗎? –

回答

2

既然你沒有給出任何你嘗試過的東西以及你從嘗試中得到的錯誤的例子,我將不得不給你一個相當通用的答案。

看看the newgrnn help file

淨= newgrnn(P,T,傳播)有三個輸入,

P   R-by-Q matrix of Q input vectors 
T   S-by-Q matrix of Q target class vectors 
spread Spread of radial basis functions (default = 1.0) 

因此,如果您的矩陣A總是具有隻是最後一列是所述輸出(目標類矢量),則輸出(目標類矢量)爲A[1:5,end],輸入爲A[1:5,1:(end-1)]。這些分別表示「前5列A,最後一列」和「前5列A,以及除最後一列以外的所有列」。

然後(就是跟隨在newgrnn幫助文件的例子中,你將不得不調整到自己的特殊A):

net = newgrnn(A[1:5,1:(end-1)], A[1:5,end]) 
% predict new values 
Y = sim(net, A[6:7,1:(end-1)]) 

我想你也應該閱讀Matlab的幫助文件indexing arrays and matrices

+0

謝謝。但我認爲提取的矩陣應該轉置以使輸入和輸出矩陣具有相同的列數。如果我運行上面的newgrnn代碼,它會給出:???在80個輸入和目標處使用==> newgrnn時出錯的列數不同。 – user488182

+0

啊,你說得對,'P'需要是'R'行'Q'列,'T'需要是'S'行'Q'列。轉置會擺脫那個錯誤,但我對神經網絡知道不夠,不知道這是否是智力上正確的事情。但是,既然你使用了5行「A」來預測其他2,爲什麼不試着看看它是否能給你所期望的? –