matlab调试卷积深度置信网络CDBN-master的时候出现crbm_forward2D_batch_mex没法识别(解决)

本文介绍了在调试Matlab中的卷积深度置信网络(CDBN)代码时遇到的问题,特别是关于如何处理`crbm_forward2D_batch_mex`无法识别的问题。通过理解C语言的入口函数和mexFunction接口,成功解决了调用问题。文章还简述了MATLAB混合C/C++编程的基本原理,并提供了调用C语言代码的步骤,包括编译MEX文件并在MATLAB中调用的示例。
摘要由CSDN通过智能技术生成

   今天帮群里的一个群友调matlab代码,CDBN,卷积深度置信网络,他说的是这个错误改了好几天都没法改,其实就是matlab如何调用c语言的问题,挺简单的。下面说说我的做法和如何在matlab中调用c语言的问题。

有一个通俗的比喻, 如果程序设计语言是车,那么C 语言就是全能手, C十十语言是加强版的C 语言, MATLAB是科学

家用来完成特殊任务的工具。作为使用MATLAB 的科学家和工程师, 通过混合程序设计,就可以借用CIC十十语言这两个全能手增强

MATLAB 的功能;作为使用C/C十十语言开发的开发者,也可以通过混合程序设计来使用MATLAB强大的科学计算与数据可视化功能。

  1. 准备好C语言程序,一般情况下要清楚C语言的入口函数,比如,如下的C语言函数:

    void mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])

  2. 编写mexfunction函数。mexfunction函数为C语言与MATLAB语言的接口函数。调用实例在mylinedetect.c文件中,文件内容如下:

    #include <math.h>
    #include <mex.h>
    #include <matrix.h>
    #include <time.h>
    #include <string.h>


    void mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
    {
    const mxArray  *model, *layer, *batch_data;
         mxArray  *model_new, *h_input_array, *h_sample_array, *output_array;
        int            ni,N,n_dim,n_map_h, n_map_v, nh,nv,j,i,jj,ii,id,
                  Hstride,Wstride,Hfilter,Wfilter,Hres,Wres,H,W,Hpool,Wpool,Hout,Wout;
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值