1. 程式人生 > >matlab2c使用c++實現matlab函式系列教程-wilkinson函式

matlab2c使用c++實現matlab函式系列教程-wilkinson函式

全棧工程師開發手冊 (作者:欒鵬)

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;
}