⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lmsimu.c

📁 nnToolKit 神经网络工具包是基于 MATLAB 神经网络工具箱自行开发的一组神经网络算法函数库
💻 C
📖 第 1 页 / 共 2 页
字号:
     * 
     * % 输入层到中间层的传递函数
     * if (length(InputFun)==0)
     */
    if (mclLengthInt(mclVa(InputFun, "InputFun")) == 0) {
        /*
         * InputFun = 'tansig';
         */
        mlfAssign(&InputFun, _mxarray3_);
    /*
     * end
     */
    }
    /*
     * % 中间层到输出层的传递函数  
     * if (length(OutputFun)==0)
     */
    if (mclLengthInt(mclVa(OutputFun, "OutputFun")) == 0) {
        /*
         * OutputFun = 'purelin'
         */
        mlfAssign(&OutputFun, _mxarray5_);
        mclPrintArray(mclVa(OutputFun, "OutputFun"), "OutputFun");
    /*
     * end    
     */
    }
    /*
     * 
     * frw1=fopen(sprintf('w%s%s',ModelNo,'1.dat'),'r');
     */
    mlfAssign(
      &frw1,
      mlfFopen(
        NULL,
        NULL,
        mlfSprintf(
          NULL, _mxarray7_, mclVa(ModelNo, "ModelNo"), _mxarray9_, NULL),
        _mxarray11_,
        NULL));
    /*
     * frb1=fopen(sprintf('b%s%s',ModelNo,'1.dat'),'r');
     */
    mlfAssign(
      &frb1,
      mlfFopen(
        NULL,
        NULL,
        mlfSprintf(
          NULL, _mxarray13_, mclVa(ModelNo, "ModelNo"), _mxarray9_, NULL),
        _mxarray11_,
        NULL));
    /*
     * frw2=fopen(sprintf('w%s%s',ModelNo,'2.dat'),'r');
     */
    mlfAssign(
      &frw2,
      mlfFopen(
        NULL,
        NULL,
        mlfSprintf(
          NULL, _mxarray7_, mclVa(ModelNo, "ModelNo"), _mxarray15_, NULL),
        _mxarray11_,
        NULL));
    /*
     * frb2=fopen(sprintf('b%s%s',ModelNo,'2.dat'),'r');
     */
    mlfAssign(
      &frb2,
      mlfFopen(
        NULL,
        NULL,
        mlfSprintf(
          NULL, _mxarray13_, mclVa(ModelNo, "ModelNo"), _mxarray15_, NULL),
        _mxarray11_,
        NULL));
    /*
     * 
     * InputDim=NetPara(1);      %输入层节点数
     */
    mlfAssign(&InputDim, mclIntArrayRef1(mclVa(NetPara, "NetPara"), 1));
    /*
     * OutputDim=NetPara(2);     %输出层节点数
     */
    mlfAssign(&OutputDim, mclIntArrayRef1(mclVa(NetPara, "NetPara"), 2));
    /*
     * MidDim=NetPara(3);         %中间层节点数
     */
    mlfAssign(&MidDim, mclIntArrayRef1(mclVa(NetPara, "NetPara"), 3));
    /*
     * 
     * [w1,count]=fscanf(frw1,'%f',[MidDim,InputDim]);
     */
    mlfAssign(
      &w1,
      mlfFscanf(
        &count,
        mclVv(frw1, "frw1"),
        _mxarray17_,
        mlfHorzcat(
          mclVv(MidDim, "MidDim"), mclVv(InputDim, "InputDim"), NULL)));
    /*
     * [b1,count]=fscanf(frb1,'%f',[MidDim,1]);
     */
    mlfAssign(
      &b1,
      mlfFscanf(
        &count,
        mclVv(frb1, "frb1"),
        _mxarray17_,
        mlfHorzcat(mclVv(MidDim, "MidDim"), _mxarray19_, NULL)));
    /*
     * [w2,count]=fscanf(frw2,'%f',[OutputDim,MidDim]);
     */
    mlfAssign(
      &w2,
      mlfFscanf(
        &count,
        mclVv(frw2, "frw2"),
        _mxarray17_,
        mlfHorzcat(
          mclVv(OutputDim, "OutputDim"), mclVv(MidDim, "MidDim"), NULL)));
    /*
     * [b2,count]=fscanf(frb2,'%f',[OutputDim,1]);
     */
    mlfAssign(
      &b2,
      mlfFscanf(
        &count,
        mclVv(frb2, "frb2"),
        _mxarray17_,
        mlfHorzcat(mclVv(OutputDim, "OutputDim"), _mxarray19_, NULL)));
    /*
     * 
     * fclose(frw1);
     */
    mclAssignAns(&ans, mlfFclose(mclVv(frw1, "frw1")));
    /*
     * fclose(frb1);
     */
    mclAssignAns(&ans, mlfFclose(mclVv(frb1, "frb1")));
    /*
     * fclose(frw2);
     */
    mclAssignAns(&ans, mlfFclose(mclVv(frw2, "frw2")));
    /*
     * fclose(frb2);
     */
    mclAssignAns(&ans, mlfFclose(mclVv(frb2, "frb2")));
    /*
     * 
     * for i=1:InputDim
     */
    {
        int v_ = mclForIntStart(1);
        int e_ = mclForIntEnd(mclVv(InputDim, "InputDim"));
        if (v_ > e_) {
            mlfAssign(&i, _mxarray20_);
        } else {
            /*
             * p1(i)=SimulatePara(i);
             * end
             */
            for (; ; ) {
                mclIntArrayAssign1(
                  &p1,
                  mclIntArrayRef1(mclVa(SimulatePara, "SimulatePara"), v_),
                  v_);
                if (v_ == e_) {
                    break;
                }
                ++v_;
            }
            mlfAssign(&i, mlfScalar(v_));
        }
    }
    /*
     * 
     * a=simuff(p1',w1,b1,InputFun,w2,b2,OutputFun);
     */
    mlfAssign(
      &a,
      mlfNSimuff(
        1,
        NULL,
        NULL,
        mlfCtranspose(mclVv(p1, "p1")),
        mclVv(w1, "w1"),
        mclVv(b1, "b1"),
        mclVa(InputFun, "InputFun"),
        mclVv(w2, "w2"),
        mclVv(b2, "b2"),
        mclVa(OutputFun, "OutputFun"),
        NULL,
        NULL,
        NULL));
    /*
     * 
     * 
     * %将仿真结果写入文件
     * fwresult=fopen(sprintf('result%s%s',ModelNo,'.dat'),'w');
     */
    mlfAssign(
      &fwresult,
      mlfFopen(
        NULL,
        NULL,
        mlfSprintf(
          NULL, _mxarray21_, mclVa(ModelNo, "ModelNo"), _mxarray23_, NULL),
        _mxarray25_,
        NULL));
    /*
     * fprintf(fwresult,'%-15.6f\n',a);
     */
    mclAssignAns(
      &ans,
      mlfNFprintf(
        0, mclVv(fwresult, "fwresult"), _mxarray27_, mclVv(a, "a"), NULL));
    /*
     * fclose(fwresult);
     */
    mclAssignAns(&ans, mlfFclose(mclVv(fwresult, "fwresult")));
    /*
     * retdouble = a;
     */
    mlfAssign(&retdouble, mclVv(a, "a"));
    /*
     * logsig(1);
     */
    mclAssignAns(&ans, mlfLogsig(_mxarray19_, NULL));
    /*
     * purelin(1);
     */
    mclAssignAns(&ans, mlfPurelin(_mxarray19_, NULL));
    /*
     * tansig(1);
     */
    mclAssignAns(&ans, mlfTansig(_mxarray19_, NULL));
    /*
     * cd(olddir);
     */
    mclAssignAns(&ans, mlfNCd(0, mclVv(olddir, "olddir")));
    mclValidateOutput(retdouble, 1, nargout_, "retdouble", "lmsimu");
    mxDestroyArray(ans);
    mxDestroyArray(olddir);
    mxDestroyArray(frw1);
    mxDestroyArray(frb1);
    mxDestroyArray(frw2);
    mxDestroyArray(frb2);
    mxDestroyArray(InputDim);
    mxDestroyArray(OutputDim);
    mxDestroyArray(MidDim);
    mxDestroyArray(w1);
    mxDestroyArray(count);
    mxDestroyArray(b1);
    mxDestroyArray(w2);
    mxDestroyArray(b2);
    mxDestroyArray(i);
    mxDestroyArray(p1);
    mxDestroyArray(a);
    mxDestroyArray(fwresult);
    mxDestroyArray(DataDir);
    mxDestroyArray(OutputFun);
    mxDestroyArray(InputFun);
    mxDestroyArray(SimulatePara);
    mxDestroyArray(NetPara);
    mxDestroyArray(ModelNo);
    mclSetCurrentLocalFunctionTable(save_local_function_table_);
    return retdouble;
    /*
     * 
     * 
     */
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -