當前位置:首頁 » 編程語言 » 混合編程java

混合編程java

發布時間: 2023-01-10 00:18:54

『壹』 java與matlab混合編程報錯

你是java調用matlab還是matlab調用java?
有些功能是不支持混合調用的,比如matlab中sym等函數。

『貳』 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與java混合編程報錯

: 這個是字元串操作越界了,檢查一下代碼,是不是有substring這樣的操作,應該是這樣引起的

『肆』 java和C#能否混合編程

請問你這樣的代碼用什麼編譯器來編譯啊?明顯是不行的啊!不過你可以用多文件調用的方式來搞。單一文件是肯定不行的

『伍』 java和c語言能混合編程嗎。

通過JNI,Java中的native方法,就是調用C/C++寫的函數

『陸』 JAVA和C語言可以共同開發某個應用軟體嗎

這個是可以的,因為有混合編程這個概念的,兩者只要環境在就可以了,程序就是為實現功能的。

熱點內容
手機如何設密碼鎖屏 發布:2025-07-10 14:17:06 瀏覽:801
java求絕對值 發布:2025-07-10 14:10:55 瀏覽:651
usb調試開關在哪裡安卓 發布:2025-07-10 13:59:55 瀏覽:77
資料庫維度 發布:2025-07-10 13:54:31 瀏覽:798
c語言位域的賦值 發布:2025-07-10 13:54:30 瀏覽:582
查成績密碼忘了怎麼辦 發布:2025-07-10 13:52:21 瀏覽:818
java死 發布:2025-07-10 13:51:30 瀏覽:995
車輛設施配置有哪些 發布:2025-07-10 13:42:28 瀏覽:819
java的成員 發布:2025-07-10 13:38:59 瀏覽:719
荒島餘生ftp 發布:2025-07-10 13:36:46 瀏覽:922