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

来源:互联网 发布:js单独一个文件怎么写 编辑:程序博客网 时间:2024/04/30 06:24

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

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

1、std函数:

求标准差

2、用法说明

std(X) %返回向量(矩阵)X的样本标准差(置前因子为0)即:
std(X,1) %返回向量(矩阵)X的标准差(置前因子为1)
std(X, 0) %与std (X)相同
std(X, flag, dim) %返回向量(矩阵)中维数为dim的标准差值,其中flag=0时,置前因子为;否则置前因子为。

std的c++源码实现

返回按列标准差向量,输入为行向量时,返回行向量的标准差
输入为一个矩阵,输出为每列的标准差向量。
实现的是matlab中 std(X,1) 函数

Matrix Matlab2c::std(Matrix& a){    Matrix m=mean(a);    double sum=0;    if(a.row==1)  //若数据矩阵为行向量    {        Matrix p=Matrix(1,1);        for (int j=0;j<a.column;j++)            sum +=(a(j)-m(0))*(a(j)-m(0));        p(0)=std::sqrt(sum/a.column);        return p;    }    Matrix p(1,a.column);    for (int j=0;j<a.column;j++)    {        sum=0;        for (int i=0;i<a.row;i++)        {            sum +=(a(i,j)-m(j))*(a(i,j)-m(j));        }        p.data[j]=std::sqrt(sum/a.row);    }    return p;}

std函数的使用测试

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