matlab2c使用c++实现matlab函数系列教程-unifstat函数
原创
©著作权归作者所有:来自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中unifstat函数简介
1、unifstat函数:
均匀分布(连续)的期望和方差
2、用法说明
[M,V] = unifstat(A,B) %A、B为标量时,就是区间上均匀分布的上边界和下边界,A、B也可为向量或矩阵,则M、V也是向量或矩阵,M为均值矩阵,V为方差矩阵。
unifstat的c++源码实现
均匀分布(连续)的期望和方差
输入:均匀分布的上界和下届
输出:均匀分布的均值和方差
Matrix* Matlab2c::unifstat(Matrix& a,Matrix& b)
{
if(a.row!=b.row || a.column!=b.column)
{
throw_logic_error("均匀分布上下限矩阵不匹配");
return NULL;
}
Matrix averMatrix(a.row,a.column),varMatrix(a.row,a.column);
Matrix *p = new Matrix[2];
for (int i=0;i<a.row;i++)
for (int j=0;j<a.column;j++)
{
averMatrix(i,j)=0.5*(a(i,j))+0.5*(b(i,j));
varMatrix(i,j)=pow((a(i,j))-(b(i,j)),2)/12;
}
p[0]=averMatrix;
p[1]=varMatrix;
return p;
}
unifstat函数的使用测试
#include "Matlab2c.h"
#pragma comment(lib,"Matlab2c.lib")
using namespace Matlab2c;
int main()
{
double a[]={1,2,3};
Matrix aa=Matrix(1,3,a);
double b[]={4,5,6};
Matrix bb=Matrix(1,3,b);
Matrix* cc=Matlab2c::unifstat(aa,bb);
cout<<cc[0].toString()<<endl;
cout<<cc[1].toString()<<endl;
system("pause");
return 0;
}