导航:首页 > 编程语言 > matlab混合编程

matlab混合编程

发布时间:2022-02-13 19:36:28

① vc++ matlab混合编程 fsolve

这个可以有四种方法实现:
(1)将Matlab程序编译成 C/C++源文件并嵌入VC++;
(2)在C/C++程序中利用 Matlab engine调用 Matlab函数;
(3)在C/C++程序中直接使用 Matlab C/C++ Math Library;
(4)将.m文件编译成 *.dll文件嵌入到 VC++的程序中。
自己上网查一下。

不过告诉你一个简单的,在matlab的工作窗口执行:
mbuild -setup

按提示操作
然后执行
met -setup
完成后,到VC里面,应该会出现met工程选项,然后操作就很简单了。

② 如何实现java和matlab的混合编程,用java做交互界面,调用matlab做计算有实例请发给我参考下,十分谢谢

部署好了就行了。环境部署网上都有。直接搜索Java与matlab混编就行。我也在做混编,部署完了,使用matlab中的deploytool将.m文件编译为class文件,就可以在Java中当成类的一个方法调用。实例发给你,你也参考不了什么。

③ matlab和c混合编程如何运行

简单点的,你就用matlab写一个接口程序,封装你的c程序,类似下面这种:(matlab的例子,实现数组相乘,文件为arrayProct.c)

#include "mex.h"

/* 你的c */
void arrayProct(double x, double *y, double *z, mwSize n)
{
mwSize i;
/* multiply each element y by x */
for (i=0; i<n; i++) {
z[i] = x * y[i];
}
}

/* 接口程序 */
void mexFunction( int nlhs, mxArray *plhs[],
int nrhs, const mxArray *prhs[])
{
/*初始化输入输出*/
double multiplier; /* input scalar */
double *inMatrix; /* 1xN input matrix */
mwSize ncols; /* size of matrix */
double *outMatrix; /* output matrix */

/* 参数检查,如果程序较简单也可以不用做*/
if(nrhs!=2) {
mexErrMsgIdAndTxt("MyToolbox:arrayProct:nrhs","Two inputs required.");
}
if(nlhs!=1) {
mexErrMsgIdAndTxt("MyToolbox:arrayProct:nlhs","One output required.");
}
/* make sure the first input argument is scalar */
if( !mxIsDouble(prhs[0]) ||
mxIsComplex(prhs[0]) ||
mxGetNumberOfElements(prhs[0])!=1 ) {
mexErrMsgIdAndTxt("MyToolbox:arrayProct:notScalar","Input multiplier must be a scalar.");
}

/* check that number of rows in second input argument is 1 */
if(mxGetM(prhs[1])!=1) {
mexErrMsgIdAndTxt("MyToolbox:arrayProct:notRowVector","Input must be a row vector.");
}

/* get the value of the scalar input */
multiplier = mxGetScalar(prhs[0]);

/* create a pointer to the real data in the input matrix */
inMatrix = mxGetPr(prhs[1]);

/* get dimensions of the input matrix */
ncols = mxGetN(prhs[1]);

/* create the output matrix */
plhs[0] = mxCreateDoubleMatrix(1,ncols,mxREAL);

/* get a pointer to the real data in the output matrix */
outMatrix = mxGetPr(plhs[0]);

/* call the computational routine */
arrayProct(multiplier,inMatrix,outMatrix,ncols);
}

这个看起来复杂,其实很简单的,就几步:
1、使用mxGet*将输入变为matlab兼容形式
2、使用mxSet*初始化输出空间
3、使用你的C程序运算

④ MATLAB混合编程在调用FORTRAN的程序

方法一、把这段代码用matlab支持的风格重写一遍,然后用mex编译成mex32文件就可以了
方法二、把这段代码封装成exe,system命令进行含参调用,exe与matlab之间用文件进行数据传递。
方法三、把这段代码封装成dll,然后在matlab里用操作dll的命令进行调用,这种方法我用的不多,没法说的更详细。相关资料可以查阅ilovematlab论坛混合编程板块。

⑤ matlab可以和什么语言混编

可以和matlab语言混编的语言多了,C/C++/VB/JAVA....具体怎么用,就得另行研究了,如果想学习和哪个混编的可问我.
乐意为您解答.

⑥ matlab与才c/c++混合编程

用Matlab编译C语言生成的代码效率并不高.如果真想有效的在Windows环境下调用数学工具的链接库或com文件,建议还是用Microsoft Math v3.0.

⑦ Matlab混合编程之使用C\UDP动态链接库传输数据的秘诀

方法/步骤
1、启动两个matlab软件,分别加载Dll
loadlibrary('CSForUDLL.dll','CSForUDLL.h')
2、libfunctions
CSForUDLL
-full
查看一下Dll里的所有函数
3、在一个matlab运算add_server函数,作为启动Server端
我写的dll第一个参数为要发送的数字
calllib('CSForUDLL','add_server',2,2,0)
之行结束会发现Server端在一直等待。
4、在另一个matlab上运行add_client函数,作为启动Client端
同理,我的dll第一个参数用来发送数字;
calllib('CSForUDLL','add_client',2,2,0)
5、回车运行,会发现返回一个数字。
这个数字是从Server端发送过来的。
6、再看一下Server端,收到Client发送的数字1

⑧ matlab与java混合编程有什么作用

Java和matlab混合编程

如果用Matlab和java混合编程开发Windows的应用程序则可以实现优势互补,缩短开发时间,降低程序设计的复杂度。同时程序可以脱离Matlab环境独立运行,在工程计算和教学实践中都具有实际意义。
1.使用java调用Maltab函数的基本方法是:通过Java Builder实现Java调用Matlab。在Java环境中直接调用Matlab所生成的Jar包。

下面以在Java中产生任意维数的魔方矩阵,计算任意矩阵的特征向量和特征值,对两组数据进
行拟合并绘制拟合曲线三个实例来说明通过Java
Builder实现Java调用Matlab的过程。传统的纯Java编程实现上述实例非常复杂,甚至很难完成。这一问题在Matlab中只需要调用几个
函数即可完成。

1.1、将Matlab函数包装成Java类

首先在Matlab中编写三个M文件:

Eig.m

function [v,d]=Eig(input)

format long

[v,d]=eig(input);

End

Magic.m

function f =Magic( input )

f=magic(input);

end

Plot.m

function Plot(x,y )

p=polyfit(x,y,3);

t=min(x):max(x)/100:max(x);

s=polyval(p,t);

plot(x,y,'*',t,s);

title('数据拟合结果');

xlabel('x');

ylabel('y');

end

其次,在Matlab中新建一个Deployment
Project,名称为MyProject.prj,类型为Java
package。在Project中新建三个Class,分别为GetEig,GetMagic,PolyFit。将
Eig.m,Magic.m,plot.m分别添加到上述Class中。之后点击Builder the project,等待编译成功即可。

1.2、在Java中调用Matlab函数

新建一个Java类JavaMatlab,并引入相关的包。

import com.mathworks.toolbox.javabuilder.*;//引入Matlab相关包

import MyProject.*;//引入建立的包及类

调用时Java与Matlab之间的参数传递需要通过MWNumericArray完成。具体的调用代码如下:

package org.genius.ExpandJava;

import MyProject.*;

import com.mathworks.toolbox.javabuilder.*;

public class JavaMatlab {

public static void main(String[] args) {

MWNumericArray a = null; // 用于保存矩阵

MWNumericArray ax = null; // 用于保存矩阵

MWNumericArray ay = null; // 用于保存矩阵

Object[] result = null; // 用于保存计算结果

GetEig getEig = null;

GetMagic getMagic=null;

PolyFit polyFit=null;

int r = 4; // 魔方矩阵维数

int array[][]={{50,-20,0},{-20,80,60},{0,60,-70}};

double x[]={0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1};

double y[]={-0.447,1.978,3.28,6.16,7.08,7.34,7.66,9.56,9.48,9.3,11.2};

try {

//产生魔方矩阵并打印

a = new MWNumericArray(r, MWClassID.DOUBLE);

getMagic = new GetMagic();

result = getMagic.Magic(1,a);

System.out.println("产生的四维魔方矩阵:");

System.out.println(result[0]);

MWArray.disposeArray(result);

//计算所给矩阵的特征向量和特征值并打印结果

a = new MWNumericArray(array, MWClassID.DOUBLE);

getEig = new GetEig();

result = getEig.Eig(2, a);

System.out.println("原始矩阵:");

System.out.println(a.toString());

System.out.println("得到的特征向量:");

System.out.println(result[0]);

System.out.println("得到的特征值:");

System.out.println(result[1]);

MWArray.disposeArray(result);

ax = new MWNumericArray(x, MWClassID.DOUBLE);

ay = new MWNumericArray(y, MWClassID.DOUBLE);

polyFit = new PolyFit();

result=polyFit.Plot(ax,ay);

polyFit.waitForFigures();

} catch (Exception e) {

System.out.println("Exception: " + e.toString());

}

finally {

// 释放本地资源

MWArray.disposeArray(a);

MWArray.disposeArray(ax);

MWArray.disposeArray(ay);

MWArray.disposeArray(result);

getEig.dispose();

getMagic.dispose();

polyFit.dispose();

}

}

}

⑨ matlab与c 混合编程 大概可提速多少倍

我做图像处理的时候,先是用MATLAB,因为有大量的循环处理,其运行时间将近一分钟,后来改用MATLAB与C混合,时间缩短至0.09秒,时间之差,真的是不可估量。

但是,情况不完全如此,MATLAB优点在于矩阵运算中,如果你的程序中有大量的矩阵运算,那么混合编程个人不是很建议;C语言优点在于循环速度很快。

我也有这样的经历,我的算法中有大量的矩阵运算(由于我是做图像处理,矩阵基本上是512*512的),本来用MATLAB编程用了9秒左右的时间,但是改用了C混合后,N长时间,反正我是等了将近一分钟,混合程序我是检验过的,没有死循环的。

以上这些完全个人经验之谈,希望对您有个帮助。

⑩ Java与MATLAB混合编程,如何处理之间图像传递

Java与MATLAB混合编程,如何处理之间图像传递?
Java和matlab混合编程 如果用Matlab和java混合编程开发Windows的应用程序则可以实现优势互补,缩短开发时间,降低程序设计的复杂度。同时程序可以脱离Matlab环境独立运行,在工程计算和教学实践中都具有实际意义。

阅读全文

与matlab混合编程相关的资料

热点内容
程序员看不懂怎么办 浏览:271
linux操作系统题 浏览:765
单片机无符号数加法 浏览:227
应用隐藏加密怎么关闭 浏览:269
汽车空调的压缩机电线有什么用 浏览:429
电脑加密图片如何取消加密 浏览:340
慧净电子51单片机视频 浏览:343
javamap赋值 浏览:165
什么app可以玩掌机游戏 浏览:46
java简单聊天室 浏览:462
通用汽车编程软件 浏览:432
一级抗震框架梁箍筋加密区规定是多少 浏览:974
教你如何把安卓手机变成苹果 浏览:11
app编译分类 浏览:323
怎么用服务器的资源包 浏览:199
oa软件手机登陆服务器地址 浏览:289
androidrtp打包 浏览:723
信息被加密码了怎么办 浏览:420
弹出光盘命令 浏览:517
kdj公式源码分享 浏览:355