VC6 0中呼叫matlab7 0的插值函式

2021-10-10 05:50:52 字數 1733 閱讀 5131

找了許多都不能把vc6.0和matlab接到一起,最後發現是matlab版本過新的問題,用matlab7.0就可以了。

環境配置都是根據這篇文章中進行配置vc6.0與matlab7.0混合程式設計

下面展示一些編碼過程

#include "stdafx.h"

#include "iostream.h" // 輸入輸出標頭檔案

#include "mclmcr.h" // mwarray 型別宣告

#include "libc_cubic.h" // dll 標頭檔案

void display(const double* data, const int r, const int c, const char* name);

int main()

// 初始化庫

if (! libc_cubicinitialize() )

// 宣告 dll 函式輸入輸出 mwarray 物件

//為變數分配記憶體空間。

// 1,1表示矩陣的大小

//(所有matlab只有一種變數,就是矩陣,為了和cpp變數接軌,設定成1*1的矩陣,

//mxdouble_class表示變數的精度)

mwarray x(1,10,mxdouble_class);//1行10列

mwarray y(10,3,mxdouble_class);//10行3列

mwarray z(2,2,mxdouble_class);//2行2列

mwarray c;

double x[10] = ;

double y[30] = ;

double z[4] = ;

double *cub;

cub = new double[6];

// 給輸入 mwarray 物件賦值

x.setdata(x,10);

y.setdata(y,30);

z.setdata(z,4);

// 呼叫 dll 函式 呼叫自己寫的函式

c_cubic(1,c,x,y,z) ;//第乙個引數是 輸出幾個引數的意思。如果輸出sum 和 prod 就寫2

//呼叫類裡面的get函式獲取函式返回值

//cub = c.get(1,1);

// 取出輸出資料

c.getdata(cub,6);

// 顯示 mwarray 物件

std::cout << "cub = " << std::endl << c << std::endl;;

// 關閉庫和程式

libc_cubicterminate() ;

return 0;

}

呼叫我寫的c_cubic函式

function [yi] = c_cubic( x,y,xi)

yi=interp1(x,y,xi,'cubic');

end

這是matlba的對應三次插值例子的**

x =[1

:10]'; y =

[ x.^2

, x.^3

, x.^4

]; xi =

[1.5

,1.75

;7.5

,7.75

]; yi =

interp1

(x,y,xi,

'cubic'

);

在VC6 0中的除錯

3.設定資料斷點,和上面不同也就是表示式,換成了乙個全域性變數,並且在斷點對話方塊中,選中data選項卡,然後輸入全域性變數名,那麼當這個全域性變數的值發生給變時,程式就會中斷。4.設定訊息斷點 就是指斷點與訊息及相應的訊息處理函式 當某個訊息處理函式處理了乙個斷點訊息,程式將在訊息處理函式處中斷。...

vc 6 0中MySql的使用

一 mysql的安裝 1 開啟vc6.0 工具欄tools選單下的options選項,在directories的標籤頁中右邊的 show directories for 下拉列表中選中 includefiles 然後在中間列表框中新增你本地安裝mysql的include目錄路徑。我的是d progr...

在VC 6 0中建立靜態庫

本文介紹用vc建立static lib,並且如何使用自己建立的庫。1 新建乙個win32 static library工程,預設 ok finish 即可 2 新建檔案add.cpp和add.h到此工程 add.h檔案如下 include int add int x,int y add.cpp檔案內...