如何将C语言转换成matlab?

如题所述

matlab 主要使用矩阵,变量是矩阵,运算是矩阵。即使是C语言中的一个简单变量,matlab也要视它为矩阵。
C语言程序放入matlab使用:
(1)必须改写main(){},把main(){},变成 matlab 入口函数 mexFunction(){},
(2)其它功能性函数/子程序不需变化。
(3)加头文件 #include "mex.h"
你需要学习一下mexFunction(){} 如何书写,参数意义等。这里就不费笔墨了。
入口函数样子:
void mexFunction(int nlhs,mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
//一般变量声明
//检查输入输出参数
//为输出参数创建矩阵,输出指针指向它
//输入指针输出指针赋值
//调用功能性函数/子程序
}
编译:
mex my_program.c追问

typedef struct
{
unsigned char statue;
double Trig_Time;
unsigned char Neur_Barr;
unsigned char Record;
}PCNNP
CNN network[X*Y];
void Trig_One_Neig(unsigned char a,unsigned char b,unsigned char c)
{...}
void Find_Trig_Neigs(unsigned char a)
{...}
int main(void)
{...}

大概格式就是这样,要怎么改

追答

main(){} 以前,全部保留。
把main() 写成:
void mexFunction(int nlhs,mxArray *plhs[], int nrhs, const mxArray *prhs[])
函数体内按前面说的加上
{
//一般变量声明
//检查输入输出参数
//为输出参数创建矩阵,输出指针指向它
//输入指针输出指针赋值
//调用功能性函数/子程序 -- 这部分是原主程序的内容
}
具体怎么写,需要找点材料,照猫画虎自己做一下。不难。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-03-03
matlab 主要使用矩阵,变量是矩阵,运算是矩阵。即使是C语言中的一个简单变量,matlab也要视它为矩阵。
C语言程序放入matlab使用:
(1)必须改写main(){},把main(){},变成 matlab 入口函数 mexFunction(){},
(2)其它功能性函数/子程序不需变化。
(3)加头文件 #include "mex.h"
你需要学习一下mexFunction(){} 如何书写,参数意义等。这里就不费笔墨了。
入口函数样子:
void mexFunction(int nlhs,mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
//一般变量声明
//检查输入输出参数
//为输出参数创建矩阵,输出指针指向它
//输入指针输出指针赋值
//调用功能性函数/子程序
}
第2个回答  2016-10-16
没有直接转换的工具,二者本质不同,matlab是解释性语言,面向的过程不同。但是matlab的语句基本上是以早期C为基础拓展的,与C的风格比较类似,会使用C的话,matlab的使用不成问题,也就是说无需转换,直接按照C的思路去编写matlab程序即可。
第3个回答  2018-08-03
没有直接转换的工具,二者本质不同,matlab是解释性语言,面向的过程不同。但是matlab的语句基本上是以早期C为基础拓展的,与C的风格比较类似,会使用C的话,matlab的使用不成问题,也就是说无需转换,直接按照C的思路去编写matlab程序即可。本回答被网友采纳
第4个回答  2017-09-18
还有个方法,直接数据拷贝,在matlab中建一个m文件,将拷贝的数据赋予一个变量(可以是二维矩阵)运行后,工作区的该变量即为一个矩阵,可以将该变量保存为.mat文件,当然高级的方法就是用xlsread了
相似回答