matlab2c使用c++实现matlab函数系列教程-blkdiag函数
原创
©著作权归作者所有:来自51CTO博客作者wx636261b2d66e0的原创作品,请联系作者获取转载授权,否则将追究法律责任
全栈工程师开发手册 (作者:栾鹏)
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中blkdiag函数简介
1、blkdiag函数:生成指定对角线元素的矩阵
2、用法说明
A = blkdiag(a,b,c,d,...) 函数产生以a,b,c,d,...为对角线元素的矩阵A
blkdiag的c++源码实现
产生以输入元素为对角元素的矩阵
输入为行向量或列向量,输出为以该向量为对角线的矩阵。
Matrix Matlab2c::blkdiag(Matrix& a)
{
Matrix p(a.row*a.column,a.row*a.column);
for (int i=0;i<p.row;i++)
for (int j=0;j<p.column;j++)
{
if (i==j)
p(i,j)=a(j);
else
p(i,j)=0;
}
return p;
}
blkdiag函数的使用测试
#include "Matlab2c.h"
#pragma comment(lib,"Matlab2c.lib")
using namespace Matlab2c;
int main()
{
double a[]={1,2,3,4,5,6};
Matrix aa=Matrix(1,6,a);
Matrix bb=Matlab2c::blkdiag(aa);
cout<<bb.toString()<<endl;
system("pause");
return 0;
}