亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C++讀寫.mat文件的方法

2020-01-26 16:20:45
字體:
來源:轉載
供稿:網友

最近在編寫C++程序的過程中,需要使用matlab生成的.mat文件,于是查找了基本使用方法。 

我的計算機環境是win7 64位系統,VS2010,matlab R2010b。 

一、工程配置: 
1.VC++目錄->包含目錄 添加: 
MATLAB/R2010b/extern/include 
MATLAB/R2010b/extern/include/win64 
 ->庫目錄 添加: 
  MATLAB/R2010b/extern/lib/win64/microsoft 
  MATLAB/R2010b/extern/lib/win32/microsoft 
2.C/C++->常規->附加包含目錄 添加: 
  MATLAB/R2010b/extern/include 
  MATLAB/R2010b/extern/include/win64 
3.鏈接器->輸入->附加依賴庫 添加: 
libmat.lib 
libmx.lib 
libmex.lib 
libeng.lib 

由于所安裝的matlab為64位,要調用其函數,需要將工程轉換為X64 
4.頂菜單->生成->配置管理器->平臺:X64 
5.鏈接器->高級->目標計算機: 
MachineX64(/MACHINE:X64) 

6.計算機環境變量->path 添加: 
E:/DevTools/MATLAB/R2010b/extern/lib/win64/microsoft; 
E:/DevTools/MATLAB/R2010b/bin/win64; 

二、所用到的基本讀取寫入mat文件代碼示例: 

首先需要包含頭文件: 

復制代碼 代碼如下:

#include <mat.h> 

[cpp] view plaincopy 

    MATFile *pmatFile = NULL;   
    mxArray *pMxArray = NULL;   

    // 讀取.mat文件(例:mat文件名為"initUrban.mat",其中包含"initA")   
    double *initA;   

    pmatFile = matOpen("initUrban.mat","r");   
    pMxArray = matGetVariable(pmatFile, "initA");   
    initA = (double*) mxGetData(pMxArray);   
    M = mxGetM(pMxArray);   
    N = mxGetN(pMxArray);   
    Matrix<double> A(M,N);   
    for (int i=0; i<M; i++)   
        for (int j=0; j<N; j++)   
            A[i][j] = initA[M*j+i];   

    matClose(pmatFile);   
    mxFree(initA);   

    // 生成.mat文件   
    double *outA = new double[M*N];   
        for (int i=0; i<M; i++)   
            for (int j=0; j<N; j++)   
                outA[M*j+i] = A[i][j];   
    pmatFile = matOpen("A.mat","w");   
    mxSetData(pMxArray, outA);   
    matPutVariable(pmatFile, "A", pMxArray);   
    matClose(pmatFile);   


三、程序說明 

1.使用matOpen函數打開mat文件 


MATFile *matOpen(const char *filename,const char *mode) 

mode: 
r:以只讀方式打開 
u:更新模式,可讀可寫,但是如果要打開的數據文件不存在,也不會創建新的文件 
w:以寫入方式打開,只能寫如入,如果要打開的數據文件不存在,則創建一個新的文件 


2.使用matGetVariable函數讀取mat文件中的變量 

mxArray * matGetVariable(MATFile * pMF, const char * name); 

讀取名為name的變量,返回一個數據陣列指針 


3.使用mxGetData函數獲取數據陣列中的數據 

void *mxGetData(const mxArray *pa ); 

返回時需要使用強制類型轉換。 


4.使用mxGetM和mxGetN函數獲取數據陣列矩陣的維數 

size_t mxGetM(const mxArray *pa); 

size_t mxGetN(const mxArray *pa); 


5.使用mxSetData函數將變量存入數據陣列 

void mxSetData( mxArray *pa, void  *newdata ); 


6.使用matPutVariable函數將數據陣列存入到mat文件中 

int matPutVariable(MATFile * pMF, const char * name, const mxArray * pA); 

存入成功返回0,存入出錯返回非0 


7.由于malab中矩陣的存儲是按列存儲,與c中不同,所以從mat文件中獲取的矩陣需要重新排列。生成mat文件時,同樣要注意。 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美大片欧美激情性色a∨久久| 国产精品日韩久久久久| 国产一区二区三区久久精品| 777777777亚洲妇女| 亚洲精品98久久久久久中文字幕| 久久久精品999| 国产suv精品一区二区| 深夜福利亚洲导航| 日韩精品视频在线免费观看| 色多多国产成人永久免费网站| 亚洲欧美激情在线视频| 国产91精品不卡视频| 欧美福利视频网站| 热久久免费国产视频| 久久久久久久亚洲精品| 国模叶桐国产精品一区| 久久亚洲欧美日韩精品专区| 国产精品91在线观看| 欧美精品九九久久| 97人人爽人人喊人人模波多| 色播久久人人爽人人爽人人片视av| 亚洲精品天天看| 久久久国产一区二区三区| 91在线高清免费观看| 日韩av电影手机在线观看| 97在线视频免费播放| 在线丨暗呦小u女国产精品| 性欧美亚洲xxxx乳在线观看| 欧美久久精品午夜青青大伊人| 国产成人精品av在线| 日韩欧美一区二区三区久久| 国产成人精品日本亚洲| 欧美精品videosex性欧美| 久久久久日韩精品久久久男男| 亚洲人精选亚洲人成在线| 91中文在线视频| 91国偷自产一区二区三区的观看方式| www.xxxx精品| 亚洲a中文字幕| 少妇高潮久久久久久潘金莲| 欧美大片免费观看在线观看网站推荐| 亚洲片在线资源| 亚洲综合日韩中文字幕v在线| 国产精品久久久久久av福利| 欧美激情女人20p| 亚洲自拍欧美另类| 欧美电影免费观看大全| 91视频国产高清| 欧美猛少妇色xxxxx| 精品中文视频在线| 色综合色综合久久综合频道88| 久久精品99久久香蕉国产色戒| 欧美成人精品在线视频| 亚洲精品一区二区网址| 欧美另类在线播放| 亚洲伊人成综合成人网| 黄色精品在线看| 欧美麻豆久久久久久中文| 91理论片午午论夜理片久久| 久久精品中文字幕一区| 91久久精品国产91久久| 在线视频免费一区二区| 国内精品免费午夜毛片| 自拍视频国产精品| 亚洲欧美在线x视频| 亚洲国产精品成人精品| 91亚洲精华国产精华| 久久久久久成人| 欧美影院成年免费版| 久久久91精品国产| 国产精品久久久久久久午夜| 国产一区二区三区在线观看网站| 欧美性生交大片免网| 992tv在线成人免费观看| 亚洲国产精品久久久久| 中文字幕在线日韩| 亚洲欧洲成视频免费观看| 亚洲欧洲在线播放| 国产一区二区三区精品久久久| 日韩中文字幕av| 亚洲xxxxx| 亚洲区中文字幕| 91久久国产婷婷一区二区| 亚洲第一免费播放区| 日韩一区视频在线| 4444欧美成人kkkk| 91精品中文在线| 57pao成人永久免费视频| 一道本无吗dⅴd在线播放一区| 亚洲精品免费av| 亚洲国产日韩欧美综合久久| 亚洲欧美日韩直播| 欧亚精品中文字幕| 麻豆乱码国产一区二区三区| 日韩av在线网址| 欧美一级大片视频| 亚洲人成在线播放| 日韩av片永久免费网站| 欧美三级xxx| 性色av一区二区三区在线观看| 97在线精品视频| 国产日韩欧美电影在线观看| 中文字幕不卡在线视频极品| 91豆花精品一区| 国产美女高潮久久白浆| 中文字幕久精品免费视频| 欧美成人剧情片在线观看| 欧美另类在线播放| 日韩国产激情在线| 日产日韩在线亚洲欧美| 国产偷亚洲偷欧美偷精品| 亚洲人成在线电影| 欧美亚洲免费电影| 亚洲视频在线观看免费| 国产成人综合一区二区三区| 日韩av免费在线观看| 亚洲天堂av女优| 亚洲影视中文字幕| 日韩电影免费观看在线观看| 欧美成人激情视频免费观看| 亚洲奶大毛多的老太婆| 国内精品小视频在线观看| 九九久久综合网站| 欧美成人午夜激情在线| 亚洲国产成人精品久久| 日韩中文字幕在线看| 俺去亚洲欧洲欧美日韩| 亚洲综合日韩中文字幕v在线| 国产精品一区二区三区久久久| 亚洲人成网站在线播| 国产欧美久久一区二区| 亚洲一区二区久久久| 中文字幕亚洲图片| 久久久久久久久久久91| 国产精品电影在线观看| 欧美黑人巨大精品一区二区| 欧美性xxxx18| 欧洲成人免费aa| 欧美在线视频一区二区| 国语自产偷拍精品视频偷| 日韩午夜在线视频| 尤物yw午夜国产精品视频| 一区二区三区美女xx视频| 8090理伦午夜在线电影| 欧美韩国理论所午夜片917电影| 国产美女主播一区| 成人在线视频福利| 亚洲精品免费在线视频| 亚洲欧美另类在线观看| 亚洲电影成人av99爱色| 国产一区二区香蕉| 国产精品久久久| 国产精品电影一区| 黑人巨大精品欧美一区免费视频| 欧美日韩xxxxx| 成人免费看吃奶视频网站| 国产午夜精品全部视频播放| 久久在线精品视频| 午夜精品久久久久久久99黑人| 午夜精品久久久久久久久久久久| 伊人久久久久久久久久久| 成人免费淫片视频软件| 91中文精品字幕在线视频| 成人免费观看网址|