版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、C#與MATLAB之間傳遞參數(shù)MWNumericArray是MWArray和c#中數(shù)據(jù)的中間類,怎么用?怎樣在C#與matlab間傳遞參數(shù)?double型、int型等數(shù)值類型的變量傳遞MWNumericArrayi=null,result=mydouble;i=4;myClassmyclass=newmyClass();/實例化result=(MWNumericArray)myclass.myfunc(i);字符串(需要用到MWCharArray和MWArray轉換)MWCharArrayFileName=myString;MWNumericArraysensitivity;sensitivi
2、ty=(MWNumericArray)myClass.myAlgorithm(MWArray)FileName);多個輸出參數(shù)組成的數(shù)組MWNumericArrayout_Arr=(MWNumericArray)out_Args1;/取出第一個參數(shù)返回的數(shù)組(matlab返回的數(shù)組下界是從1開始的)取出數(shù)組中的一個元素值mydouble=out_Arri.ToScalarDouble();如上面例子ToScalarDouble一類的toXXXX等方法還有許多。result.toArray可以把matlab返回的矩陣變成C#的nxm數(shù)組,eg:double,csArray=(double,)re
3、sult.ToArray(MWArrayComponent.Real);將數(shù)組傳入Matlab(和傳遞單個數(shù)值的方法一樣)double,dbx=newdouble2,21,2,3,4;MWNumericArrayx=dbx;myclass.picture(x);M文件如何接收和返回?functionx=test(h,d)/接收兩個參數(shù),返回一個functionx1,x2=test(h,d)/返回數(shù)組以上為.Net方式連接,以下為COM方式連接(編譯速度而言.net的方式要快上很多,而且似乎比較穩(wěn)定)matlab編譯工作mbuild-setupdeploytool,MatlabB,Generic
4、COMComponent-添加m函數(shù)文件(eg:myfunc.m),改類名(eg:myComClass),build注冊dllregsvr32myCom.dllregsvr32mwcomutil.dllVS2005調用:Reference加Com控件調用示例double,arr=null;objectin_a,out_a;in_a=500;out_a=arr1;myCom.myComClassmc=newmyCom.myComClass();mc.myfunc(1,refout_a,in_a);小例子:(提取matlab返回的兩個參數(shù)并轉化為C#的矩陣)Codetestz.testzclass
5、st=newtestz.testzclass();MWArraymax=st.testz(2);MWNumericArrayx1=(MWNumericArray)max0;MWNumericArrayx2=(MWNumericArray)max1;double,location1=(double,)x1.ToArray(MWArrayComponent.Real);double,location2=(double,)x2.ToArray(MWArrayComponent.Real);label1.Text=location11,2.ToString();其中的M文件:Codefunctionx
6、1,x2=testz()x1=123;456;789;x2=987;654;321;另一篇:以下是本人編程中總結的一些思路,拿出來與大家共享。不對之處,請留言說明。版本:MatlabR2007b,VisualStudio2005C+/C#數(shù)據(jù)類型到M類型此方向轉換十分簡單。如果C+/C#數(shù)據(jù)不是數(shù)組,直接將值傳遞給已經初始化的MWArray數(shù)組中的成員直接將數(shù)據(jù)類型賦值給已經初始化的MWNumericArray變量。直接將字符串類賦值給已經初始化的MWCharArray變量。如果是數(shù)組類型:直接賦值給MWNumericArray變量;賦值給MWArray變量,則在前面加上類型轉換如:(MWNu
7、mericArray)進行強制轉換??傊琈WArray是總類型,其它的以MW開頭,以Array結尾的變量類型都可以直接對它進行賦值或取值。M類型到C+/C#數(shù)據(jù)類型MWArrayM類型,它是M文件的編譯后內部的標準類型,一切C+/C#類型都要最終轉換成此類型,方可作為參數(shù)調用M語言函數(shù)。MWCharArrayM的字符串類型,使用它可以將M中的字符類型轉換成C+/C#的字符串類型。MWNumericArrayMWNumericArray是MWArray與C#等語言的轉換中間類型。常用的轉換函數(shù):publicArrayToArray(MWArrayComponentcomponent);將M類型
8、轉換成C#的Array類型,然后可以直接轉換成其它類型的數(shù)組。publicbyteToScalarByte();將M類型轉換成C#的字節(jié)類型;publicdoubleToScalarDouble();將M類型轉換成C#的雙精度類型;doubletemp=(MWNumericArray)(mwArgout0).ToScalarDouble();publicfloatToScalarFloat();將M類型轉換成C#的單精度類型;publicintToScalarInteger();將M類型轉換成C#的整型類型;publiclongToScalarLong();將M類型轉換成C#的長整C/C+/C
9、#數(shù)據(jù)型類型;publicshortToScalarShort();將M類型轉換成C#的短整型類型;publicoverridestringToString();將M類型轉換成C#的字符串類型;stringarror=mwArgout2.ToString();publicArrayToVector(MWArrayComponentcomponent);將M類型轉換成C#的Array類型,然后可以直接轉換成其它類型的數(shù)組。下面使用調試過的代碼示例表述兩個函數(shù)的區(qū)別:double,Temp1=newdouble1,3;Temp1=(double,)(MWNumericArray)mwArgout1).ToArray(MWArrayComponent.Real);dou
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 長沙衛(wèi)生職業(yè)學院《管理溝通(英語)》2023-2024學年第一學期期末試卷
- 云南農業(yè)大學《建筑工業(yè)化與裝配式結構》2023-2024學年第一學期期末試卷
- 孩子里程碑的教育模板
- 保險業(yè)基礎講解模板
- 述職報告創(chuàng)新實踐
- 職業(yè)導論-房地產經紀人《職業(yè)導論》點睛提分卷3
- 年終工作總結格式要求
- 二零二五版LNG液化天然氣裝運合同3篇
- 二零二五年度汽車后市場擔保合作協(xié)議合同范本集錦:維修保養(yǎng)服務2篇
- 二零二五版國際金融公司勞務派遣與風險管理協(xié)議3篇
- 浙江省金華市婺城區(qū)2024-2025學年九年級上學期期末數(shù)學試卷(含答案)
- 天津市河西區(qū)2024-2025學年高二上學期1月期末英語試題(含答案無聽力音頻及聽力原文)
- 水利工程安全應急預案
- 滬教版小學數(shù)學三(下)教案
- 2024-2025年度村支書工作述職報告范文二
- 繼電保護多選試題庫與參考答案
- 品管圈PDCA改善案例-降低住院患者跌倒發(fā)生率
- 2024年江西水利職業(yè)學院單招職業(yè)技能測試題庫及答案解析
- 《交換機基本原理》課件
- 向電網(wǎng)申請光伏容量的申請書
- 2024-2030年中國硫磺行業(yè)供需形勢及投資可行性分析報告版
評論
0/150
提交評論