您的位置:首页 > 其它

c读取mat文件,并调用m生成的dll中的函数,函数返回值保存为mat文件

2015-11-27 21:58 267 查看
c读取mat文件,调用dll函数,返回值写入mat文件,mxArray内存管理松散,需要最后销毁。

#include "stdafx.h"

#include <stdlib.h>

#include "mat.h"

#include <iostream>

#include "libAutoExtract.h"

#include <fstream>

#pragma comment(lib, "mclmcrrt.lib" )

#pragma comment(lib,"libAutoExtract.lib")

using namespace std;

int main()

{

    MATFile *pmat = NULL;

    MATFile *pmatFile = NULL;

    const char *file;

    mxArray *pa;

    

    if (!libAutoExtractInitialize())

    {

        cout << "Could not initialize" << endl;

        return -1;

    }    

    file = "E://alogrithmprogramming//C++//cmatdll//cmatdll//Y.mat";//读入初始数据

    pmat = matOpen(file, "r");

    if (pmat == NULL) {

        cout << "Error opening file" << endl;

        return 1;

    }

    pa = matGetNextVariable(pmat, &name);//返回指向文件头文件信息的指针,指针类型为*mxArray; 

    mxArray* FV;

    FV = NULL;//必须初始化

    mlfAutoextract(1,&FV, pa);//m文件生成的dll的函数

    

    // 生成.mat文件   

    pmatFile = matOpen("A.mat", "w");

    matPutVariable(pmatFile, "A", FV);

    mxDestroyArray(pa);

    mxDestroyArray(FV);

    matClose(pmatFile);

    matClose(pmat);

    libAutoExtractTerminate();

    //system("pause");

    return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: