matlab2c使用c++實現matlab函式系列教程-wilkinson函式
阿新 • • 發佈:2019-01-01
全棧工程師開發手冊 (作者:欒鵬)
matlab2c呼叫方法:
1、下載動態連結庫
2、將Matlab2c.dll拷貝到exe同目錄下
3、將Matlab2c.h、Matlab2c.lib放到專案標頭檔案目錄下
4、在cpp檔案中引入下面的程式碼
#include "Matlab2c.h"
#pragma comment(lib,"Matlab2c.lib")
using namespace Matlab2c;
matlab中wilkinson函式簡介
1、wilkinson函式:生成Wilkinson特徵值測試陣
2、用法說明
A = wilkinson(4) 函式產生4維Wilkinson特徵值測試陣
wilkinson的c++原始碼實現
生成Wilkinson特徵值測試陣
輸入為矩陣的維數,輸出相應大小的Wilkinson矩陣。
Matrix Matlab2c::wilkinson(int n)
{
int i,j;
Matrix p(n,n);
if (n==1)
p.data[0]=0;
else if (n>1)
{
if (n%2==0)
{
for (i=0;i<p.row;i++)
for (j=0;j<p.column;j++)
if (i-j==1 || j-i==1)
p(i,j) = 1;
else if(i==j)
p(i,j) =std::fabs((n-1)/2-i+0.5);
else
p(i,j) =0;
}
else
{
for (i=0;i<p.row;i++)
for (j=0;j<p.column;j++)
if (i-j==1 || j-i==1)
p(i,j) = 1;
else if(i==j)
p(i,j) =std::abs(n/2-i);
else
p(i,j) =0;
}
}
return p;
}
wilkinson函式的使用測試
#include "Matlab2c.h"
#pragma comment(lib,"Matlab2c.lib")
using namespace Matlab2c;
int main()
{
Matrix cc=Matlab2c::wilkinson(4);
cout<<cc.toString()<<endl;
system("pause");
return 0;
}