下面主要讨论C++语言中的Object和Function的对象等级问题。
对于C++中的object(对象)和class(类),前者是后者的实例化。Class的定义是一种虚拟化的规则的说明,而object则是具体的类的实现。一个对象有相应的构造函数与析构函数,在程序中动态声明对象的时候,程序会自动调用对象的构造函数,对象失效时,程序会进入对象的析构函数,撤销对象占用的资源。再者,对象可以作为参数传递给函数作为参数,比如在我们经常会看到这样的语句:bool Push(Stack &S, type x),同时对象还能够作为返回值返回。另外,对象有单独的存储实体,C++ 中的Serialize函数就是把对象写入文件或者从文件中读取对象,这说明在对象在文件中有一块独立的存储空间,这一点可以区分出class(类)并不是头等程序对象,因为class只是抽象地声明。而对于以上几点,说明object(对象)在C++语言中是头等对象。
在C和C++语言中,在程序运行过程中,我们不能动态创建一个function,C++中的函数都是实现在程序写好的,然而对于一些函数式的语言来说,Function就是头等程序对象,因为它们可以传递给其他函数作为参数,也能够在程序运行过程中动态地创建与销毁。对于C/C++中得Function,我们可以称之为second-class object(次等对象),因为虽然它不满足严格的头等对象的定义,但是我们可以通过指针类型,辅助function完成上述工作。
你在建立网络的时候不是用了net=newff(……)吗?这个net就是输出的结果。newff函数只是初始化一个神经网络,之后还得用train函数训练,训练好的net就是你要的网络。
newff函数的格式为:
net=newff(PR,[S1 S2 ...SN],{TF1 TF2...TFN},BTF,BLF,PF),函数newff建立一个可训练的前馈网络。输入参数说明:
PR:Rx2的矩阵以定义R个输入向量的最小值和最大值;
Si:第i层神经元个数;
TFi:第i层的传递函数,默认函数为tansig函数;
BTF:训练函数,默认函数为trainlm函数;
BLF:权值/阀值学习函数,默认函数为learngdm函数;
PF:性能函数,默认函数为mse函数。