999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Java和Matlab混合編程及其應(yīng)用問(wèn)題

2018-05-28 08:15:16王芳
電子技術(shù)與軟件工程 2018年8期
關(guān)鍵詞:程序語(yǔ)言

文/王芳

在計(jì)算機(jī)軟件開(kāi)發(fā)的過(guò)程中,我們經(jīng)常會(huì)使用到各類編程語(yǔ)言來(lái)進(jìn)行相關(guān)計(jì)算,來(lái)處理軟件開(kāi)發(fā)中遇到的各類問(wèn)題,同時(shí)也能夠構(gòu)建完整全面的軟件開(kāi)發(fā)環(huán)境。大部分計(jì)算機(jī)軟件開(kāi)發(fā)的過(guò)程都非常復(fù)雜,而為了降低編程的困難與繁瑣,在實(shí)際開(kāi)發(fā)過(guò)程中經(jīng)常會(huì)選擇幾種語(yǔ)言混合編程的方式,突出各個(gè)編程語(yǔ)言的優(yōu)勢(shì),實(shí)現(xiàn)優(yōu)劣互補(bǔ),將一些復(fù)雜的編程問(wèn)題簡(jiǎn)單化。下面也針對(duì)Java和Matlab這兩種編程語(yǔ)言進(jìn)行分析,探討兩者的混合編程。

1 混合編程的相關(guān)概述

在混合編程過(guò)程中,最基本的思想就是如何實(shí)現(xiàn)不同程序設(shè)計(jì)語(yǔ)言的參數(shù)傳遞,能夠在不同系統(tǒng)設(shè)計(jì)語(yǔ)言之間進(jìn)行數(shù)據(jù)互通。混合編程的適用條件主要分為三個(gè)方面。

(1)不同程序設(shè)計(jì)語(yǔ)言之間應(yīng)該能夠較為便利的進(jìn)行數(shù)據(jù)互通。這個(gè)條件也是兩個(gè)語(yǔ)言進(jìn)行混合編程的重要條件,如果數(shù)據(jù)不能實(shí)現(xiàn)互通,那么就無(wú)法進(jìn)行混合編程。

(2)不同程序設(shè)計(jì)語(yǔ)言進(jìn)行相同計(jì)算的效率相差較大。這個(gè)條件是兩個(gè)語(yǔ)言進(jìn)行混合編程的價(jià)值體現(xiàn)。如果兩種程序設(shè)計(jì)語(yǔ)言在進(jìn)行相同計(jì)算的時(shí)候效率基本一致,那么說(shuō)明兩者之間非常相似,就很難實(shí)現(xiàn)優(yōu)勢(shì)互補(bǔ)。

(3)不同程序設(shè)計(jì)語(yǔ)言除去能夠?qū)崿F(xiàn)數(shù)據(jù)互通之外,其他部分都相對(duì)獨(dú)立。這個(gè)條件是整個(gè)混合編程得以完成的重要保證,能夠?qū)崿F(xiàn)兩種程序設(shè)計(jì)語(yǔ)言在混合編程的過(guò)程不會(huì)出現(xiàn)相互干擾。

2 Java和Matlab混合編程的分析

2.1 Java編程的內(nèi)涵

Java是面向?qū)ο蟮囊环N編程語(yǔ)言,不但很好的繼承了C++語(yǔ)言的各類優(yōu)點(diǎn),同時(shí)還改善了C++語(yǔ)言中多繼承等很難被理解的內(nèi)容。從這個(gè)角度來(lái)看,Java編程語(yǔ)言就擁有功能全面和簡(jiǎn)單易用兩個(gè)方面的優(yōu)勢(shì),能夠以一種相對(duì)簡(jiǎn)單的方式來(lái)解決很多復(fù)雜的編程問(wèn)題。Java編程的工作原理主要分為四個(gè)部分。

2.1.1 Java編程語(yǔ)言

這個(gè)環(huán)節(jié)主要是使用記事本、寫字板等文字編輯軟件,或者使用Eclipse等集成開(kāi)發(fā)環(huán)境來(lái)定義不同的類。

2.1.2 Java類文件格式

通過(guò)調(diào)用之前定義好的不同類,來(lái)訪問(wèn)資源系統(tǒng),并將源文件編譯成二進(jìn)制中間碼,最終形成class文件。

2.1.3 Java虛擬機(jī)

將之前編譯好的class文件在相應(yīng)的Java虛擬機(jī)中運(yùn)行,并產(chǎn)生各類字節(jié)碼。

2.1.4 Java應(yīng)用程序接口

在所有工作都進(jìn)行完成以后,形成最終的Java文件。

2.2 Matlab編程的含義

Matlab是美國(guó)MathWorks公司開(kāi)發(fā)的商業(yè)數(shù)字軟件,能夠進(jìn)行算法開(kāi)發(fā)、數(shù)值計(jì)算等各類工作,主要包括Matlab和Simulink兩個(gè)方面。Matlab是matrix和laboratory兩個(gè)詞語(yǔ)的組合,意喻矩陣實(shí)驗(yàn)室,Matlab編程語(yǔ)言具有多方面的優(yōu)勢(shì)。

(1)Matlab編程環(huán)境的多種工具都使用了圖形用戶界面,具有較強(qiáng)的人機(jī)交互性,并且操作也相對(duì)簡(jiǎn)單。

(2)Matlab編程雖然是一種比較高級(jí)的矩陣語(yǔ)言,但是在具體操作的時(shí)候非常簡(jiǎn)單。用戶只需要掌握C++語(yǔ)言的相關(guān)知識(shí),就能夠很快適應(yīng)Matlab編程系統(tǒng)。

(3)Matlab編程包含了非常多的計(jì)算算法,具有六百多個(gè)各類工程中都需要使用到的數(shù)字運(yùn)算函數(shù),能夠滿足用戶的不同需求。在計(jì)算要求相同的條件下,利用Matlab會(huì)有效降低工作量。

(4)Matlab編程體系具有可視化的圖形處理功能,同時(shí)也改善了編程過(guò)程中的GUI。不僅如此,Matlab還具有兼容性更強(qiáng)的程序接口,拓展了Matlab的應(yīng)用范疇和應(yīng)用價(jià)值。

2.3 Java和Matlab混合編程的背景分析

Java是當(dāng)前我國(guó)非常熱門的一種面對(duì)對(duì)象的編程語(yǔ)言,因此Java編程也被廣泛用于各類程序軟件設(shè)計(jì)過(guò)程中。這種發(fā)展背景也使得Java編程在具體使用中遇到了較多復(fù)雜的編程問(wèn)題,比如多線程和網(wǎng)絡(luò)編程等。Java編程語(yǔ)言在數(shù)據(jù)分析與處理上的優(yōu)勢(shì)并不是非常顯著,特別是在數(shù)組矩陣等類型的數(shù)據(jù)處理中,Java編程語(yǔ)言的劣勢(shì)就會(huì)變得非常明顯,降低了整個(gè)編程的效率和最終效果。而Matlab在這方面跟Java有較大的差異,即擁有非常突出的數(shù)據(jù)處理優(yōu)勢(shì),能夠調(diào)動(dòng)數(shù)學(xué)、統(tǒng)計(jì)等多個(gè)領(lǐng)域的函數(shù),總函數(shù)數(shù)量已經(jīng)超過(guò)了六百條。在Java編程過(guò)程中比較復(fù)雜的編程問(wèn)題,如果能夠使用Matlab來(lái)操作,可能僅僅需要一條語(yǔ)句就可以很好的完成相應(yīng)的編程工作。但Matlab編程對(duì)于多線程和跨平臺(tái)實(shí)現(xiàn)方面有所不足,跟Java有較大的差距。從這些角度來(lái)看,Java和Matlab混合編程是非常有意義的。

如果技術(shù)人員能夠使用兩者進(jìn)行混合編程,那么就能夠很好的發(fā)揮兩者的優(yōu)勢(shì),彌補(bǔ)Java和Matlab在各自編程上的不足。將Java和Matlab進(jìn)行混合編程,能夠顯著提高數(shù)據(jù)計(jì)算的效率。這也是Java和Matlab混合編程的重要價(jià)值所在。

3 Java和Matlab混合編程的應(yīng)用實(shí)例

3.1 Java和Matlab混合編程的模型建立

在Java和Matlab混合編程過(guò)程中,程序員需要解決的主要問(wèn)題就是如何實(shí)現(xiàn)數(shù)據(jù)在不同編程軟件和編程語(yǔ)言中的傳遞。Java是一種面向?qū)ο蟮木幊陶Z(yǔ)言,并且編程過(guò)程中使用的任何一個(gè)對(duì)象都是類模型實(shí)例化產(chǎn)生的。因此,在使用Java編程的時(shí)候,程序員必須要建立一個(gè)類,并能夠?qū)⑵滢D(zhuǎn)換為編程中所要使用的對(duì)象,接著將所有對(duì)象都儲(chǔ)存在一個(gè)文本文檔中。這個(gè)時(shí)候,程序員需要在Matlab編程體系中預(yù)先布設(shè)一個(gè)Java接口,將之前儲(chǔ)存好的對(duì)象引入到Matlab編程環(huán)境中,在Matlab編程環(huán)境中實(shí)現(xiàn)對(duì)數(shù)據(jù)的計(jì)算與更改,還要在所有計(jì)算工作完成以后重新將文件保存下來(lái),通過(guò)之前的Java接口來(lái)接收Matlab計(jì)算好的數(shù)據(jù)。

圖1:一個(gè)包含native函數(shù)的Java類例子

3.2 Java和Matlab混合編程的應(yīng)用分析

Java和Matlab混合編程的方向主要有兩種,即在Java中調(diào)用Matlab程序和在Matlab中調(diào)用Java程序。兩種方法都能夠?qū)崿F(xiàn)混合編程,但完成的主要工作有所不同。在Java中調(diào)用Matlab程序主要是使用了Matlab在數(shù)據(jù)處理上的強(qiáng)大能力,彌補(bǔ)Java編程在數(shù)據(jù)計(jì)算上的不足。而在Matlab中調(diào)用Java程序,則是利用Java在多線程和跨平臺(tái)實(shí)現(xiàn)等方面的優(yōu)勢(shì),提高最終的編程效果。

3.2.1 在Java中調(diào)用Matlab程序

在Java中調(diào)用Matlab程序主要有兩個(gè)方法:第一就是將Matlab程序編譯M文件為Java包,最終在Java編程中實(shí)現(xiàn)后續(xù)編程工作。第二就是將Matlab程序編譯成C/C++動(dòng)態(tài)庫(kù),并通過(guò)JNI工具實(shí)現(xiàn)在Java程序中調(diào)用。

(1)將Matlab程序編譯M文件為Java包。這個(gè)混合編程的整體流程相對(duì)來(lái)說(shuō)比較容易,需要程序員先在Matlab中調(diào)出Deployment Project框,并將Java Package作為編譯類型。接著,程序員需要在接下來(lái)的頁(yè)面中添加相關(guān)的M文件,選擇運(yùn)行Build選項(xiàng)進(jìn)行后續(xù)的編譯工作。在所有編譯工作都完成以后,可以將Java包放置在distrib目錄下,并將類代碼文件等中間產(chǎn)物放置在src目錄下。在混合編程工作中,一般都僅會(huì)使用distrib中的文件,不會(huì)調(diào)用src中儲(chǔ)存的文件。

(2)將Matlab程序編譯成C/C++動(dòng)態(tài)庫(kù)。這個(gè)過(guò)程的具體步驟分為三個(gè)部分。第一,程序員在混合編程之前應(yīng)該先根據(jù)具體情況來(lái)選擇合適的C/C++編譯器,保證其能夠很好的用于Windows操作環(huán)境。第二,在選擇和安裝好編譯器以后,就可以將M文件編譯成C/C++動(dòng)態(tài)庫(kù)了。第三,在做完上述編譯工作以后,就可以在JNI中進(jìn)行后續(xù)的程序開(kāi)發(fā)工作。這里需要先在Java程序中調(diào)用多種native方法,并基于這種方式來(lái)實(shí)現(xiàn)對(duì)C/C++動(dòng)態(tài)庫(kù)的調(diào)用。圖1就是一個(gè)包含native函數(shù)的Java類例子。這個(gè)例子通過(guò)native函數(shù)來(lái)調(diào)動(dòng)了C/C++動(dòng)態(tài)庫(kù),給后續(xù)混合編程工作提供了基礎(chǔ)。

3.2.2 在Matlab中調(diào)用Java程序

事實(shí)上,在Matlab5.3版本以后,Matlab的開(kāi)發(fā)商和設(shè)計(jì)者就在安裝程序中內(nèi)置了Java虛擬機(jī),相當(dāng)于在Matlab安裝過(guò)程中就附帶安裝了Java接頭,使得用戶可以使用Matlab中的相應(yīng)命令來(lái)調(diào)用Java程序,更好的實(shí)現(xiàn)兩者的混合編程。這也使得Matlab程序員能夠直接訪問(wèn)JavaAPI,很好的拓展了編程功能,有效減少了混合編程中可能出現(xiàn)的重復(fù)操作。不僅如此,這種內(nèi)置JVM的做法,能夠使得Matlab程序員更好的在編程過(guò)程中建立Java對(duì)象,實(shí)現(xiàn)兩種編程語(yǔ)言之間的數(shù)據(jù)互通。

就目前的應(yīng)用實(shí)例來(lái)看,Matlab程序員在編程中調(diào)用Java類的主要來(lái)源有三種。即Java類庫(kù)、第三方軟件提供的類、用戶基于自身需求建立的類。而Matlab在加載這些類的時(shí)候,一般都會(huì)先明確需要加載類的具體路徑,從而保證后續(xù)編程能夠順利進(jìn)行。在明確所要使用到的類的路徑以后,就可以通過(guò)import命令來(lái)將這些類引入到Matlab環(huán)境中,并在Matlab環(huán)境中進(jìn)行后續(xù)的計(jì)算。這些類在Matlab中的使用方法跟Java基本上非常類似,不存在不兼容等不良問(wèn)題。

3.3 Java和Matlab混合編程應(yīng)用中需要注意的問(wèn)題

程序員在使用Java和Matlab混合編程的時(shí)候,還需要注意多個(gè)方面的問(wèn)題,才能有效的促進(jìn)混合編程最終的效果。

(1)程序員應(yīng)該能夠很好的明確兩個(gè)程序設(shè)計(jì)語(yǔ)言的優(yōu)點(diǎn)和不足,并且在具體使用的時(shí)候能夠充分發(fā)揮兩者的優(yōu)點(diǎn),不能出現(xiàn)顯著的沖突。具體來(lái)說(shuō),就能夠能夠充分發(fā)揮Matlab編程在數(shù)值計(jì)算等方面的高效性,并結(jié)合Java編程的多線程等優(yōu)勢(shì),有效的提高編程效率。如果發(fā)現(xiàn)兩者出現(xiàn)沖突,一定要分析沖突的來(lái)源,并及時(shí)的解決。

(2)程序員應(yīng)該能夠靈活的利用混合編程的方法,并且能夠通過(guò)多個(gè)途徑來(lái)實(shí)現(xiàn)混合編程。這主要是因?yàn)榛贘ava和Matlab的混合編程在各行各業(yè)中都有非常顯著的應(yīng)用,因此在選擇混合編程方法的時(shí)候,應(yīng)該考慮到其后續(xù)應(yīng)用的領(lǐng)域來(lái)進(jìn)行合理選擇。就目前的具體情況來(lái)看,通過(guò)COM、Matlabcontrol、DLL、Linux、Hadoop等多種途徑都能夠?qū)崿F(xiàn)Java和Matlab的混合編程。這也說(shuō)明了這種混合編程的應(yīng)用領(lǐng)域非常廣泛,需要程序員能夠結(jié)合自身的經(jīng)驗(yàn)和相關(guān)標(biāo)準(zhǔn)要求來(lái)更好的進(jìn)行編程工作。

4 結(jié)束語(yǔ)

混合編程是當(dāng)前計(jì)算機(jī)領(lǐng)域中應(yīng)用比較普遍的技術(shù),在未來(lái)的發(fā)展中具有較為廣闊的潛力。在當(dāng)前的背景下,我們應(yīng)該重視Java和Matlab的混合編程方法,并探討兩者混合編程在多種平臺(tái)和環(huán)境中的實(shí)現(xiàn),提高混合編程在具體軟件設(shè)計(jì)中的應(yīng)用價(jià)值與效果。

參考文獻(xiàn)

[1]陳宏希,鄒益民.用Matlabcontrol實(shí)現(xiàn)Java與Matlab的混合編程[J].工業(yè)儀表與自動(dòng)化裝置,2012(03):27-30+97.

[2]王 薇,楊 麗 萍.Java和Matlab混合編程及其應(yīng)用[J].長(zhǎng)春大學(xué)學(xué)報(bào),2012(10):1186-1189.

猜你喜歡
程序語(yǔ)言
語(yǔ)言是刀
文苑(2020年4期)2020-05-30 12:35:30
試論我國(guó)未決羈押程序的立法完善
讓語(yǔ)言描寫搖曳多姿
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
多向度交往對(duì)語(yǔ)言磨蝕的補(bǔ)正之道
英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
累積動(dòng)態(tài)分析下的同聲傳譯語(yǔ)言壓縮
創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
我有我語(yǔ)言
主站蜘蛛池模板: 欧美午夜在线观看| 亚洲成人黄色网址| 无码精品国产VA在线观看DVD| 久操中文在线| 久久精品最新免费国产成人| 亚洲男人天堂网址| 国产精品亚洲一区二区三区在线观看 | 国产精品亚洲专区一区| 国内毛片视频| 亚洲男人的天堂网| 极品国产一区二区三区| 国产福利拍拍拍| 国产成人精品男人的天堂| 天堂久久久久久中文字幕| 亚洲综合精品香蕉久久网| 99这里只有精品在线| 日韩在线成年视频人网站观看| 欧美成人区| 国产在线视频自拍| 亚洲一级毛片免费观看| 日本精品中文字幕在线不卡| 午夜国产大片免费观看| 国产精品男人的天堂| 久久夜色精品| 一本色道久久88综合日韩精品| 欧美三级不卡在线观看视频| 国产另类乱子伦精品免费女| 欧美激情,国产精品| 亚洲无码一区在线观看| 美女被操黄色视频网站| a级免费视频| 成人综合在线观看| 日本久久网站| 国外欧美一区另类中文字幕| 一区二区三区在线不卡免费| 欧美国产综合色视频| 中文字幕啪啪| 亚洲AⅤ波多系列中文字幕| 九色视频线上播放| 在线a网站| 毛片久久久| 91娇喘视频| 一本大道AV人久久综合| 99无码中文字幕视频| 91在线精品麻豆欧美在线| 亚洲AV成人一区二区三区AV| 永久天堂网Av| 成人另类稀缺在线观看| 人妻无码中文字幕第一区| 经典三级久久| 亚洲国产天堂在线观看| 九九视频在线免费观看| 中国丰满人妻无码束缚啪啪| 国产成人无码AV在线播放动漫| 91极品美女高潮叫床在线观看| 五月激情综合网| 免费观看成人久久网免费观看| 91日本在线观看亚洲精品| 丁香五月激情图片| 91视频99| 日本一区高清| 亚洲浓毛av| 日韩A∨精品日韩精品无码| 无遮挡一级毛片呦女视频| 亚洲成年网站在线观看| 亚洲国产综合精品中文第一| 国产91视频免费| 国产精品太粉嫩高中在线观看| 国产成人区在线观看视频| 国产精品视频第一专区| 九九这里只有精品视频| 婷婷色在线视频| 啪啪免费视频一区二区| 国产黄在线免费观看| 亚洲一区毛片| 日本免费新一区视频| 亚洲成AV人手机在线观看网站| 久久久久88色偷偷| 成人国产三级在线播放| 原味小视频在线www国产| 亚洲三级色| 九色在线视频导航91|