当前位置:首页 » 编程软件 » matlab函数编译

matlab函数编译

发布时间: 2022-12-11 14:44:57

㈠ MATLAB中怎么在编译器中定义一个四则运算函数

clccleara=round(rand*90)+10;b=round(rand*90)+10;c=input('请输入一个四则运算符号,请用单引号括起来');switchccase'+'d=a+b;case'-'d=a-b;case'*'d=a*b;case'/'d=a/b;endd示范:请输入一个四则运算符号,请用单引号括起来'*'d=7520

㈡ matlab函数编写

MATLAB有自己的文本编辑器,不需要在记事本中写。
创建一个可调用的M文件函数有好多种方法:
1、File->New->Function,MATLAB会自动打开editor,并且创建一个带有标准格式的m文件,你可以自己补充需要的功能;
2、也可以直接点击File下方的创建按钮,生成一个空白的文档,然后自己按照函数格式编写代码。

代码写完后要保存成 .m文件,文件名必须与函数名称相同,且需保存在当前目录(Current Folder)下

㈢ MATLAB程序如何编译产生DLL

把一个简单的m代码编译成C++接口的DLL,然后在C++程序中调用。为了简单起见,这里的C++程序是一个Win32 Console程序,而不是Windows图形界面的程序,不过不妨碍我们的讨论。

下面是这个例子用到的m代码。它定义了一个名为myadd2的函数

function [y,z] = myadd2(a, b)

% mmy function, just to demonstrate the idea

y = a+b;

z = a+2*b;

end
复制代码
首先把这个函数编译成C++接口的DLL。为此,我们需要先设置MATLAB编译器。具体做法是在MATLAB命令行执行“mbuild -setup”。然后用下面这行命令把myadd2函数编译成一个C++接口的DLL:

mcc -W cpplib:libmyadd2 -T link:lib myadd2
复制代码
结果,我们将会得到包含libmyadd2.dll,libmyadd2.ctf,libmyadd2.h,libmyadd2.lib等在内的一些文件。接下来我们只需要这四个文件。

然后在VS2005中创建一个Win32 Console的VC++工程,我在测试时取名为testmyadd2_r2007b。把以上四个文件拷贝到VC++工程的源代码所在目录。

接下来设置VC++,让它能找到MATLAB接口函数的定义及连接库函数。可以有两种设置方式:一种是改VS2005中关于VC++的设置,这样的好处是每个新的工程都能自动获得这个设定;而另一种是只改当前工程的设置,也就是设置只对该工程有效。这里用后一种方式。

在VS2005中打开工程testmyadd2_r2007b,选择菜单“Project-->;Properties,在出来的对话框上,把MATLAB提供的include路径加到VC++的头文件搜索路径。

然后把相应的lib所在目录加到linker的额外搜索路径上

接下来,告诉VC++,我们的这个程序需要连接到另外两个额外的库函数:libmyadd2.lib和mclmcrrt.lib。中间用空格隔开

最后则是程序代码。这个程序只有一个main函数,其完整代码附在下面给大家参考。

#include "stdafx.h"

#include <iostream>

#include "mclmcr.h"

#include "mclcppclass.h"

#include "libmyadd2.h"

int _tmain(int argc, _TCHAR* argv[])

{

std::cout << "Hello world!" << std::endl;

/* Initialize the MCR */

if( !mclInitializeApplication(NULL,0) )

{

std::cout << "Could not initialize the application!" << std::endl;

return -1;

}

// initialize lib

if( !libmyadd2Initialize())

{

std::cout << "Could not initialize libmyadd2!" << std::endl;

return -1;

}

try

{

// declare and initialize a

mwArray a(2, 2, mxDOUBLE_CLASS);

double *aData;

aData = new double[4];
复制代码
本帖隐藏的内容
int i;

for( i=0; i<4; ++i)

{

aData = 1.0*i;

}

// print output

std::cout << "a = " << std::endl;

std::cout << aData[0] << ",\t" << aData[1] << std::endl;

std::cout << aData[2] << ",\t" << aData[3] << std::endl;

a.SetData(aData, 4);

// declare and initialize b

mwArray b(2, 2, mxDOUBLE_CLASS);

b(1,1) = 11.;

b(1,2) = 12.;

b(2,1) = 21.;

b(2,2) = 22.;

mwArray y(2, 2, mxDOUBLE_CLASS);

mwArray z(2, 2, mxDOUBLE_CLASS);

// call the function

myadd2(2, y, z, a, b);

// data from mwArray to C++ objects

// allocate outputs

double *yData, *zData;

yData = new double[4];
复制代码

if( yData == NULL )

{

std::cout << "Failed to allocate memory for yData!" << std::endl;

return -1;

}

zData = new double[4];

if( zData == NULL )

{

std::cout << "Failed to allocate memory for zData!" << std::endl;

return -1;

}

// data from mwArray to C++

y.GetData(yData, 4);

z.GetData(zData, 4);

// print output

std::cout << "y = " << std::endl;

std::cout << yData[0] << ",\t" << yData[1] << std::endl;

std::cout << yData[2] << ",\t" << yData[3] << std::endl;

std::cout << "z = " << std::endl;

std::cout << zData[0] << ",\t" << zData[1] << std::endl;

std::cout << zData[2] << ",\t" << zData[3] << std::endl;

// deallocate memory

delete [] aData;

delete [] zData;

delete [] yData;

}

catch( const mwException& e)

{

std::cerr << e.what() << std::endl;

}

// terminate the lib

libmyadd2Terminate();

// terminate MCR

mclTerminateApplication();

return 0;

}

㈣ MATLAB 函数编写

首先建立M文件或直接点击(File/New/Function)建立函数文件,其中函数文件的格式是:function[输出变量]=函数名称(输入变量)%注释%函数体举例说明:假设有个函数y=2*x^2+3*x+4,编写一个子函数(自定义函数)建立1个*.m文件,文件内

㈤ matlab调用C++函数,编译出错

检查那个位置究竟有没有那个文件。

测试的话,可以直接把文件头的内容复制粘贴到cpp最前面。

㈥ 请教关于利用Matlab中“mex”命令编译C程序的问题

1.准备好C语言程序,清楚C语言的入口函数
2.编写mexfunction函数。mexfunction函数为C语言与MATLAB语言的接口函数。调用实例在mylinedetect.c文件中.在MATLAB中调用mex指令编译相关文件,将C语言编译为MEX文件。
3.编译完成后,生成mylinedetect.mexw32或mylinedetect.mexw64文件,此文件即mex文件,用于MATLAB与C语言接口函数.
4.编译完成之后,编写MATLAB函数,调用MEX文件。以MEX文件的形式调用编译完成的C语言函数[o1,o2]=mylinedetect(double(X).');......
5.输出结果,上述linedetect函数完成图像中直线检测功能,带入MATLAB中调用后形成结果。

热点内容
编译历史 发布:2025-07-04 18:23:01 浏览:850
空调压缩机种类 发布:2025-07-04 18:13:58 浏览:242
中国有ip6服务器吗 发布:2025-07-04 17:58:56 浏览:725
第六章编译原理答案 发布:2025-07-04 17:37:55 浏览:40
php内存优化 发布:2025-07-04 17:25:54 浏览:664
威纶触摸屏如何设置时间限制密码 发布:2025-07-04 17:25:50 浏览:418
python列表的遍历 发布:2025-07-04 17:24:20 浏览:24
编译基本块 发布:2025-07-04 17:23:06 浏览:750
scl语言编程 发布:2025-07-04 17:23:05 浏览:993
oracle用户连接数据库连接 发布:2025-07-04 17:20:20 浏览:939