matlab和java哪个编程更难?

Python012

matlab和java哪个编程更难?,第1张

严格的来说matlab不算是编程语言。只有你有C语言的基础,Matlab就很容易。

使用 MATLAB可以较使用传统的编程语言(如 C、C++ 和 Fortran)更快地解决技术计算问题。

MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

MATLAB是矩阵实验室(Matrix Laboratory)的简称,和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++ ,JAVA的支持。

想了解更多有关matlab的详情,推荐咨询达内教育。达内教育是引领行业的职业教育公司,致力于面向IT互联网行业,培养软件开发工程师、系统管理员、UI设计师、网络营销工程师、会计等职场人才,拥有强大的师资力量,实战讲师对实战经验倾囊相授,部分讲师曾就职于IBM、微软、Oracle-Sun、华为、亚信等企业,其教研团队更是有独家26大课程体系,助力学生系统化学习,同时还与各大高校进行合作,助力学生职业方向的发展。感兴趣的话点击此处,免费学习一下

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()

}

}

}