2011-12-18 67 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,为什么不试着看看它是否能给你所期望的? –