版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、C#與MATLAB之間傳遞參數(shù)MWNumericArray是MWArray和c#中數(shù)據(jù)的中間類,怎么用?怎樣在C#與matlab間傳遞參數(shù)?a.double型、int型等數(shù)值類型的變量傳遞MWNumericArray i = null, result = mydouble;i=4;myClass myclass = new myClass(); /實例化result = (MWNumericArray)myclass.myfunc(i);b.字符串(需要用到MWCharArray和MWArray轉(zhuǎn)換)MWCharArray FileName = myString;MWNumericArray
2、sensitivity;sensitivity = (MWNumericArray)myClass.myAlgorithm(MWArray)FileName);c.多個輸出參數(shù)組成的數(shù)組MWNumericArray out_Arr = (MWNumericArray)out_Args1; /取出第一個參數(shù)返回的數(shù)組(matlab返回的數(shù)組下界是從1開始的)取出數(shù)組中的一個元素值mydouble=out_Arri.ToScalarDouble();如上面例子ToScalarDouble一類的toXXXX等方法還有許多。double, csArray= (double,)result.ToArra
3、y(MWArrayComponent.Real);e.將數(shù)組傳入Matlab(和傳遞單個數(shù)值的方法一樣)double, dbx = new double2, 2 1, 2 , 3, 4 ;MWNumericArray x=dbx;myclass.picture(x);-M文件如何接收和返回?function x=test(h,d) /接收兩個參數(shù),返回一個function x1,x2=test(h,d) /返回數(shù)組 -以上為.Net方式連接,以下為COM方式連接(編譯速度而言.net的方式要快上很多,而且似乎比較穩(wěn)定)matlab編譯工作- mbuild -setup- deploytool,
4、Matlab Builder for .net,Generic COM Component- 添加m函數(shù)文件(eg: myfunc.m),改類名(eg: myComClass),build注冊dllregsvr32 myCom.dllregsvr32 mwcomutil.dllVS2005調(diào)用:- Reference加Com控件- 調(diào)用示例double, arr = null;object in_a, out_a;in_a = 500;out_a = arr1;myCom.myComClass mc = new myCom.myComClass();mc.myfunc(1, ref out_a
5、, in_a);-小例子:(提取matlab返回的兩個參數(shù)并轉(zhuǎn)化為C#的矩陣)Code testz.testzclass st = new testz.testzclass(); MWArray max = st.testz(2); MWNumericArray x1 = (MWNumericArray)max0; MWNumericArray x2 = (MWNumericArray)max1; double, location1 = (double,)x1.ToArray(MWArrayComponent.Real); double, location2 = (double,)x2.ToA
6、rray(MWArrayComponent.Real); label1.Text = location11,2.ToString();其中的M文件:Codefunction x1,x2=testz()x1=1 2 3; 4 5 6; 7 8 9;x2=9 8 7; 6 5 4; 3 2 1;另一篇:以下是本人編程中總結(jié)的一些思路,拿出來與大家共享。不對之處,請留言說明。版本:Matlab R2007b ,Visual Studio 2005C+/C#數(shù)據(jù)類型到M類型此方向轉(zhuǎn)換十分簡單。如果C+/C#數(shù)據(jù)不是數(shù)組,直接將值傳遞給已經(jīng)初始化的MWArray數(shù)組中的成員直接將數(shù)據(jù)類型賦值給已經(jīng)初始化
7、的MWNumericArray變量。直接將字符串類賦值給已經(jīng)初始化的MWCharArray變量。如果是數(shù)組類型:直接賦值給MWNumericArray變量;賦值給MWArray變量,則在前面加上類型轉(zhuǎn)換如:(MWNumericArray)進行強制轉(zhuǎn)換??傊琈WArray是總類型,其它的以MW開頭,以Array結(jié)尾的變量類型都可以直接對它進行賦值或取值。M類型到C+/C#數(shù)據(jù)類型MWArrayM類型,它是M文件的編譯后內(nèi)部的標準類型,一切C+/C#類型都要最終轉(zhuǎn)換成此類型,方可作為參數(shù)調(diào)用M語言函數(shù)。MWCharArrayM的字符串類型,使用它可以將M中的字符類型轉(zhuǎn)換成C+/C#的字符串類型。
8、MWNumericArrayMWNumericArray是MWArray與C#等語言的轉(zhuǎn)換中間類型。常用的轉(zhuǎn)換函數(shù): public Array ToArray(MWArrayComponent component);將M類型轉(zhuǎn)換成C#的Array類型,然后可以直接轉(zhuǎn)換成其它類型的數(shù)組。public byte ToScalarByte();將M類型轉(zhuǎn)換成C#的字節(jié)類型;public double ToScalarDouble();將M類型轉(zhuǎn)換成C#的雙精度類型;double temp = (MWNumericArray)(mwArgout0).ToScalarDouble();public fl
9、oat ToScalarFloat();將M類型轉(zhuǎn)換成C#的單精度類型;public int ToScalarInteger();將M類型轉(zhuǎn)換成C#的整型類型;public long ToScalarLong();將M類型轉(zhuǎn)換成C#的長整C/C+/C#數(shù)據(jù)型類型;public short ToScalarShort();將M類型轉(zhuǎn)換成C#的短整型類型; public override string ToString();將M類型轉(zhuǎn)換成C#的字符串類型;string arror = mwArgout2.ToString(); public Array ToVector(MWArrayComponent component);將M類型轉(zhuǎn)換成C#的Array類型,然后可以直接轉(zhuǎn)換成其它類型的數(shù)組。下面使用調(diào)試過的代碼示例表述兩個函數(shù)的區(qū)別:double, Temp1 = new double1,3; Temp1= (double,)(MWNumericArray)mwArgout1).ToArray(MWArrayComponent.Real);dou
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年浙江省麗水市“五校高中發(fā)展共同體”高一上學(xué)期10月聯(lián)考歷史試題(解析版)
- 單位管理制度集粹匯編【員工管理篇】
- 2025年高考數(shù)學(xué)一輪復(fù)習(xí)之常用邏輯用語
- 單位管理制度匯編大合集【員工管理】十篇
- 2024春節(jié)放假安全風(fēng)險應(yīng)急預(yù)案范文(32篇)
- 《穴盤育苗技術(shù)》課件
- 《空氣調(diào)節(jié)趙榮義》課件
- 八下期末考拔高測試卷(2)(解析版)
- 《專升本會計學(xué)原理》課件
- 公務(wù)員工作總結(jié)真情為民盡心盡力
- 針灸推拿學(xué)100512練習(xí)題庫與參考答案
- 常用截面慣性矩與截面系數(shù)的計算
- 行車工考試試題
- 小兒頭皮靜脈輸液課件
- 電力電纜高頻局放試驗報告
- 肺病科主任年度述職匯報
- 2023年福建省晉江市數(shù)學(xué)七年級第一學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測試題含解析
- 水利水電工程基礎(chǔ)坑隱蔽工程驗收證書
- 余熱發(fā)電工程總施工組織設(shè)計方案
- 建設(shè)工程監(jiān)理費計算器(免費)
- 希望點-列舉法
評論
0/150
提交評論