matlab2c使用c++实现matlab函数系列教程-hankel函数

来源:互联网 发布:怎么做一个软件 编辑:程序博客网 时间:2024/04/29 21:15

全栈工程师开发手册 (作者:栾鹏)

matlab2c动态链接库下载
matlab库函数大全
matlab2c基础教程
matlab2c开发全解教程

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中hankel函数简介

1、hankel函数:生成Hankel矩阵。Hankel矩阵的构成方式是:先指定第一列和最后一行,矩阵中其他所有元素都与其左下角相邻位置的元素相等,即H(i,j)=H(i+1,j-1)。

2、用法说明

 1.H=hankel(c,r);   生成非对称的Hankel矩阵。第一列元素为c,最后一行元素为r,若c的最后一个元素与r的第一个元素不相等,交叉位置的元素取c的最后一个元素。 2.H=hankel(c);    生成对称的Hankel矩阵。第一列元素为c,次对角线下方所有元素均为零。

hankel的c++源码实现

生成Hankel方阵
输入为两个行向量,输出为其Hankel矩阵。

Matrix Matlab2c::hankel(Matrix& a,Matrix& b){    Matrix p(a.column,b.column);    int i,j;    if (a(a.column-1)!=b(0))    {        throw_logic_error("第一个向量最后一个元素和第二个向量第一个元素不相等");    }    for (i=0;i<p.row;i++)        for (j=0;j<p.column;j++)            if ((i+j)<(a.column))                p(i,j)=a(i+j);            else                p(i,j)=b(i+j+1-a.column);    return p;}Matrix Matlab2c::hankel(Matrix& a){    Matrix p(a.column,a.column);    int i,j;    for (i=0;i<p.row;i++)        for (j=0;j<p.column;j++)            if ((i+j)<(a.column))                p(i,j)=a(i+j);            else                p(i,j)=0;    return p;}

hankel函数的使用测试

#include "Matlab2c.h"#pragma comment(lib,"Matlab2c.lib")  using namespace Matlab2c;int main(){    double a[]={1,2,3};    double b[]={3,4,5,6,7};    Matrix aa=Matrix(1,3,a);    Matrix bb=Matrix(1,5,b);    Matrix cc1=Matlab2c::hankel(aa,bb);    cout<<cc1.toString()<<endl;    Matrix cc2=Matlab2c::hankel(aa);    cout<<cc2.toString()<<endl;    system("pause");    return 0;}
阅读全文
2 0
原创粉丝点击