# understanding the newff and train functions

122 views (last 30 days)
Viraj on 23 May 2014
Commented: idris on 17 Apr 2024
I have been given a project to predict future exchange rates between two currencies based on exchange rates in the past. I need to create a neural network to accept 10 values and to give a one single value as the output. (10 past exchange rates as inputs and output is the predicted exchange rate.) P = [0 1 2 3 4 5 6 7 8 9 10]; T = [0 1 2 3 4 3 2 1 2 3 4]; I learnt that in a this kind of situation, there are only one input node and one output node. first value of the T vector is the output when the first value of the P vector is given as the input. I need to give 10 input values to the first layer of the network. How to use newff function here. I am only looking for newff function since I have been advised to use only newff. I hope someone will help me to overcome my issue. Thanks!
Jo Men on 15 Sep 2017
feedforwardnet
idris on 17 Apr 2024

Greg Heath on 24 May 2014
NEWFF has been obsolete for 4 years. The current function to use for regression/curve-fitting is FITNET.
You only have 11 points resulting in 11 equations. By closing your eyes and imagining the plot of T vs P, you will "see" a 3rd order polynomial-type curve with an internal local maximum and an endpoint maximum. This should be able to be modeled with H = 2 hidden nodes and Nw = (1+1)*H+(H+1)*1 = 7 weights/biases.
This is straight forward. See the examples in
help/doc newff
or, if you want to use the current function model
help/doc fitnet.
To mitigate the possibility of an unfortunate assignment of initial random weights, design 10 or more nets.
Hope this helps.
Thank you for formally accepting my answer
Greg
##### 3 CommentsShow 1 older commentHide 1 older comment
Greg Heath on 26 May 2014
MATLAB is a vector/matrix based language. The code tends to be relatively independent of the actual dimensions of inputs and outputs. For examples search the NEWSGROUP and ANSWERS with
greg newff
greg fitnet
waqar ali on 1 Feb 2017
hello MyNetwork = newff(pn,tn, [i] , {tf}, 'trainlm');
i am trying to use newff function ,but i received this error , i am using matlab 2013 , any can tell me the reason of this error "Error using newff>new_5p1 (line 172) Layer sizes is not a row vector of positive integers.
Error in newff>create_network (line 130) net = new_5p1(varargin{:});
Error in newff (line 102) out1 = create_network(varargin{:});

ilhem ouerghui on 10 Nov 2016
Edited: Walter Roberson on 10 Nov 2016
Iam using Matlab 2016, I tried to use the function:
net_RN=newff(minmax(app2),[nbre_caract,Nero_cache,1]);
with:
nbre_caract=size(app2) && Nero_cache = 3
but i get this error:
Warning: NEWFF used in an obsolete way.
and from the help: The recommended function is feedforwardnet
how can I use this function please?
##### 3 CommentsShow 1 older commentHide 1 older comment
ilhem ouerghui on 11 Nov 2016
Steven Lord on 11 Nov 2016
You can ignore it, but I recommend reading the documentation for feedforwardnet and using that function as its documentation describes instead.

abdelhafid benchikh on 2 Dec 2016
Hi everyone I want to understand how the newff function work I means how can I use it and thanks
Walter Roberson on 2 Dec 2016
You can go back to the last time it was documented, http://www.mathworks.com/help/releases/R2010a/toolbox/nnet/newff.html in R2010a.
If you are using a release newer than R2010a, then don't use newff(), use feedforwardnet() instead.

FuWei Shen on 29 Sep 2022
great, it is useful.