zoukankan      html  css  js  c++  java
  • matlab文件的基本操作

    mat文件格式是matlab文件的特有格式文件,mat文件存储了matlab的包含的多个矩阵的数据信息以及约定的matlab阵列头信息。由于matlab普及程度,将文件保存成mat文件格式可以极大的增加软件的适用性。

    以下记录了VC++保存matlab的mat文件的方法:

    matlab相关的API函数            

    MAT 函 数 功能
    matOpen 打开 MAT 文件
    matClose 关闭 MAT 文件
    matGetDir 从 MAT 文件中获得 MATLAB 阵列的列表
    matGetFp 获得一个指向MAT 文件的ANSI C 文件指针
    matGetVariable 从MAT文件中读取MATLAB阵列
    matPutVariable 写MATLAB阵列到MAT文件
    matGetNextVariable 从MAT文件中读取下一个MATLAB阵列
    matDeleteVariable 从MAT文件中删去下一个MATLAB阵列
    matPutVariableAsGlobal 从MATLAB阵列写入到MAT文件中
    matGetVariableInfo 从MAT文件中读取MATLAB阵列头信息
    matGetNextVariableInfo 从MAT文件中读取下一个MATLAB阵列头信息

    表格中是所用到的主要的MATLAB 的API函数

    读取MAT文件

    /***************************************************************************************************************************
    实现了从mat文件中读取矩阵数据,并且存储在CString变量data中
    
    ***************************************************************************************************************************/
    MATFile *pMF = NULL;    //mat文件
    mxArray *pA  = NULL;   //矩阵指针
    double *A;    //数据指针
    const char **dir;
    int ndir;
    int i,j;
    int m,n;
    //开启CFileDialog函数进行文件选取
    CFileDialog dlgFileOpen(TRUE,"matlab(*.mat)|*.mat","*.mat",OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT ,"matlab(*.mat)");
    CString lpstrFilename;
    if(dlgFileOpen.DoModal()==IDOK)
        lpstrFilename = dlgFileOpen.GetPathName();
    pMF = matOpen(lpstrFilename,"r");
    dir = (const char **)matGetDir(pMF,&ndir);
    
    CString str;
    CString data;
           
    //matlab中的矩阵式按列显示的
    for (i =0 ;i <ndir;i++)
    {
        str.Format("%s",dir[i]);  
        pA = matGetVariable(pMF,str);   //从mat文件中获取数据
        m = mxGetM(pA);     //获取数据的行数
        n = mxGetN(pA);      //获取数据的列数
        A = mxGetPr(pA);    //获取矩阵数据地址
        for (i=0;i<m;i++)
        {
            for (j=0;j<n;j++)
            data.Format("%f",A[j*m+i]);
        }
    }
    mxFree(dir);
    mxDestroyArray(pA);
    matClose(pMF);

    保存mat文件

    未完待续!

  • 相关阅读:
    window下启动tomcat输出日志乱码
    Mybatis
    JAVA-Stream
    记录-linux安装supervisor来监控elasticsearch
    草稿
    定时任务
    阿里云linux6.9 64位安装mysql5.7.23记录
    归并排序
    快速排序
    HTML DOM
  • 原文地址:https://www.cnblogs.com/jackcin/p/3235079.html
Copyright © 2011-2022 走看看