日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

怎样用matlab打开mw文,C# matlab混合编程 MWArray使用笔记

發布時間:2023/11/27 C# 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 怎样用matlab打开mw文,C# matlab混合编程 MWArray使用笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C# matlab混合編程

徐凱Email:xukai19871105@http://www.doczj.com/doc/1a6e191fff00bed5b9f31dbf.html

這幾天突然想搞一搞以前沒有搞定的MATLABC#混合編程,今天把原來編寫的代碼拿出來看看,然后結合網上一些正確的和一些錯誤的代碼看看,最后詳細參考了MATLAB的幫助文檔,總算搞定了C#和MATLAB的混合編程。當然也不是完全搞定,僅僅完成了很小的一部分。總結一下,也就是熟悉MW Array 和.NET之間的數據類型轉換。下面就和大家分享一下吧。

查看MATLAB提供一個最簡單的關于繪圖函數的例子,我先實踐了一下MATLAB中的代碼,發現發現有問題,有點懷疑matlab幫助文檔的代碼有問題,雖然這種情況真的非常的少見,但是后來證明我的懷疑是正確的。MATLAB原來C#的代碼大概是這樣的。

//二維數組,Y=X^2

double[,] plotValue = new double[10, 2];

for (int i = 0; i < 10; i++)

{

plotValue[i, 0] = i;

plotValue[i, 1] = i * i;

}

//實例化Calculater對象

Calculater myCalculater = new Calculater();

//調用drawgraph方法

myCalculater.drawgraph((MWNumericArray)plotValue);

C#的代碼中說起來也非常簡單,聲明一個二維數組,使用for循環給每一個元素賦值,這個數組的第0列是X坐標的值,數組的第1列是Y坐標的值,兩個坐標的關系是Y=X^2。而MATLAB中m文件的函數如下:

function drawgraph(coords)

plot(coords(1,:), coords(2,:));

MATLAB的代碼的意思也很簡單,以coords矩陣的第1行的所有列為X坐標,第2行的所有列為Y軸。在這里一看發現了一個問題,我自己心里想可能是matlab提供的范例似乎有點問題,C#創建的數組是10行2列的,而drawgraph的函數似乎想接收一個2行10列的數據。這樣導致的兩個結果,第一,我個人總是得不到想要的結果,總給我畫一個空圖,這也是我上次嘗試的時候放棄的原因。第二,由于這個debug存在,所以我就仔細研究了MW Array這個類型和與C#之間的類型轉換,這也是就是自學的快樂所在,解決一個問題還可以學到很多其他的東西,所以我每次都“樂此不疲”。

話說回來,如果把這個行列的關系搞清楚的話,就可以得到想要的結果。例如我把matlab的m文件重寫成這樣的形式

function drawgraph(coords)

plot(coords(:,1), coords(:,2),'*');

那么這條拋物線就很自然的得到了,結果如圖所示啊。為了表達的清楚一點,我還把標記換成了*。

總結

以上是生活随笔為你收集整理的怎样用matlab打开mw文,C# matlab混合编程 MWArray使用笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

歡迎分享!

轉載請說明來源于"生活随笔",并保留原作者的名字。

本文地址:怎样用matlab打开mw文,C# matlab混合编程 M