| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 398 人关注过本帖
标题:C语言和MATLAB联合编程的问题
只看楼主 加入收藏
米线儿
Rank: 2
等 级:论坛游民
威 望:1
帖 子:35
专家分:54
注 册:2015-3-28
结帖率:87.5%
收藏
已结贴  问题点数:20 回复次数:1 
C语言和MATLAB联合编程的问题
最近正在做一个C语言和MATLAB联合编程生成mex file使得MATLAB可以直接调用的程序,但是有一个问题解决不了,求各位大神帮忙,O(∩_∩)O谢谢。

因为写的main程序是带有参数的,然后为了不改变太多,我在网上找到一个方法,就是将MATLAB里面的参数直接传递给argc和argv,然后把main函数改名,然后用argc和argv来调用main函数。
但是我测试了一下,好像有一些问题。

int argc = 0;
char **argv;
int i = 0;
argc = nrhs;
argv = (char **) mxCalloc( argc, sizeof(char *) );
     for( i=0; i < argc; i++)
    {
        if( !mxIsChar( prhs[i] ) )
        {
        mexErrMsgTxt("Input must be of type char.");
        return;
         }
        argv[i] = mxArrayToString( prhs[i] );
        //printf("argv[%d] = %s\n",i,argv[i]);
    }

这一段之后,argv确实能打印出来传递过来的参数信息,然后我在main函数里面试着用一个循环打印出argv[i]里面的信息:
int mex_main(int argc,char *argv[])
{
    int j;
    printf("argc = %d\n",argc);
    for ( j = 0; j < argc; j++ )
    {
        printf("argv[%d] = %s\n",j, argv[j]);
        return 0;
    }
}

但是调用之后的结果显示,argc是对的,但是argv只打得出来argv[0], 这是为什么呢? 麻烦麻烦,谢谢各位。
2015-08-31 07:24
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:20 
不会MATLAB帮顶吧

一片落叶掉进了回忆的流年。
2015-08-31 08:21
快速回复:C语言和MATLAB联合编程的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036395 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved