c 呼叫Matlab的引數傳遞

2021-10-04 06:58:25 字數 1210 閱讀 1597

c#呼叫matlab函式時,需要將c#資料型別轉換成matlab資料型別。

此時,需要引用mwarray.dll檔案。該程式集包含了與matlab資料交換的類。其中,mwarray類及每個派生類提供建立和訪問 matlab 資料型別的方法。

所有類都派生自抽象的 mwarray 類和每個派生類,對映到 matlab 資料型別。但同樣是抽象的 mwindexarray 除外。

c#類對應matlab型別

mwnumericarray

數值陣列

使用此類將c# 數值陣列(如int )轉matlab數值陣列

mwlogicalarray

bool陣列

mwchararray

字元陣列

c#字串對應matlab的乙個字元陣列

mwstructarray

結構陣列

c#物件

mwcellarray

元組陣列

c#泛型集合

matlab函式如下:

function [code,msg] = test(inta,strp)

% box=[minx,maxx,miny,maxy,minz,maxz ]

%inta = [1,2,3 ]; %陣列

%strp = ; %元組

%strp2 = ,,}; %元組

size(strp); % 1行6列

fid=fopen('out.txt','wt');

fprintf(fid,'%s\n',strp);

code = size(inta);

fprintf(fid,'%g\n',inta(1,2));

msg = 'yesy';

fclose(fid);

return

end

其中

c#**如下

public int test(listbox, listpathname)

var ret= clazz.test(mw_sigma,cellarray); //返回乙個mwarray型別的變數

mwnumericarray arr = (mwnumericarray)ret;

return convert.toint32(arr[1,1].toscalarinteger());

}

c 函式呼叫引數傳遞

在c 中,引數傳遞的方式是 實虛結合 按值傳遞 pass by value 位址傳遞 pass by pointer 引用傳遞 pass by reference 按值傳遞的過程為 首先計算出實參表示式的值,接著給對應的形參變數分配乙個儲存空間,該空間的大小等於該形參型別的,然後把以求出的實參表示式...

c 平台呼叫 傳遞引數

最近做專案用到了dll,網上介紹了很多,但是真要自己實現起來確實也費了不少功夫,這裡有自己基礎不紮實的原因,也有客觀原因,比如平台呼叫中,好多細節問題如果注意不到,就會得到錯誤的答案。下面是些我寫的一些小測試程式 code 1 str為輸入引數,outstr為輸出引數 2char strtest c...

C 函式的呼叫與引數傳遞

c 函式的呼叫與引數傳遞 根據函式引數傳遞的不同方式分 1.函式傳值呼叫 2.函式傳址呼叫 3.函式引用呼叫 1 傳值呼叫 函式傳值呼叫是將實參的值傳遞給形參,形參和實參各自具有單獨的儲存空間,因此改變形參的值時,實參的值不會受到任何影響。值傳呼叫多用在不需要被呼叫函式改變實參的值的場合。實參可以是...