使用C/C++读取matlab中.mat格式数据的操作

 更新时间:2023年12月22日 09:49:26   作者:_妈耶_  
这篇文章给大家介绍了使用C/C++读取matlab中.mat格式数据的操作,文中通过图文结合的方式介绍的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下

以window11+VS2022+MATLAB2023a为例

1、添加matlab环境变量

添加以下几个参数,具体目录根据自己电脑matlab安装路径为准

D:\MATLAB\MATLAB.R2023a\MATLAB\bin

D:\MATLAB\MATLAB.R2023a\MATLAB\extern\lib\win64\microsoft

D:\MATLAB\MATLAB.R2023a\MATLAB\bin\win64

2、配置VS参数

2.1 VC++目录配置

包含目录配置如下

D:\MATLAB\MATLAB.R2023a\MATLAB\extern\include

D:\MATLAB\MATLAB.R2023a\MATLAB\extern\include\win64

库目录配置如下:

D:\MATLAB\MATLAB.R2023a\MATLAB\extern\lib\win64\microsoft

2.2 C/C++配置

附加包含目录配置如下:

D:\MATLAB\MATLAB.R2023a\MATLAB\extern\include

D:\MATLAB\MATLAB.R2023a\MATLAB\extern\include

2.3连接器配置

连接器—>常规配置如下:

D:\MATLAB\MATLAB.R2023a\MATLAB\extern\lib\win64\microsoft

连接器—>输入配置如下:

libmat.lib

libmx.lib

libmex.lib

libeng.lib

3、编写程序

前面两步骤完成,添加头文件才不会报错;

#define _CRT_SECURE_NO_WARNINGS 1

#include <iostream>

#include <mat.h>//头文件

using namespace std;


int main()
{
    MATFile* pmatFile = NULL;
    mxArray* pMxArray = NULL;

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

    pmatFile = matOpen("a.mat", "r");//打开一个a.mat的文件,返回值是一个地址;
    pMxArray = matGetVariable(pmatFile, "a");//
    initA = (double*)mxGetData(pMxArray);


    int M = mxGetM(pMxArray);
    int N = mxGetN(pMxArray);
    double A[16][1000];
    for (int i = 0; i < M; i++)
    {
        for (int j = 0; j < N; j++)
        {
            A[i][j] = initA[M * j + i];
        }
    }
    cout << M * N << " " << M << " " << N << endl;
    for (int i = 0; i < M; i++)
    {
        for (int j = 0; j < N; j++)
        {
            cout << A[i][j] << " ";
        }
        cout << endl;
    }
    matClose(pmatFile);
    mxFree(initA);
    system("pause");
}

以上就是使用C/C++读取matlab中.mat格式数据的操作的详细内容,更多关于C/C++读取.mat格式数据的资料请关注脚本之家其它相关文章!

相关文章

  • C语言实现一个闪烁的圣诞树

    C语言实现一个闪烁的圣诞树

    本文详细讲解了C语言实现一个闪烁的圣诞树,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • 华为云开发工具CodeArts IDE for C/C++开发使用指南

    华为云开发工具CodeArts IDE for C/C++开发使用指南

    CodeArts IDE是一个集成开发环境(IDE),它提供了开发语言和调试服务,本文主要介绍了华为云开发工具CodeArts IDE for C/C++ 开发使用指南,感兴趣的可以了解一下
    2023-08-08
  • C++如何实现定长内存池详解

    C++如何实现定长内存池详解

    内存池根据存储的元素的长度是否可变,分为变长,与定长两种内存池,这篇文章主要给大家介绍了关于C++如何实现定长内存池的相关资料,需要的朋友可以参考下
    2021-09-09
  • C语言中输出空格的五种方法

    C语言中输出空格的五种方法

    在C语言中,输出空格可以通过使用 printf 函数来实现,可以直接在字符串中包含空格,或者使用转义字符来控制格式,本文给大家介绍了几种常见的输出空格的方法,需要的朋友可以参考下
    2024-08-08
  • C++/GoLang如何实现自底向上的归并排序

    C++/GoLang如何实现自底向上的归并排序

    这篇文章主要给大家介绍了关于C++/GoLang如何实现自底向上的归并排序的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 用C语言实现简单五子棋小游戏

    用C语言实现简单五子棋小游戏

    这篇文章主要为大家详细介绍了用C语言实现简单五子棋小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • C语言新建临时文件和临时文件名的方法

    C语言新建临时文件和临时文件名的方法

    这篇文章主要介绍了C语言新建临时文件和临时文件名的方法,分别是mkstemp()函数和mktemp()函数的使用,需要的朋友可以参考下
    2015-08-08
  • C语言异或校验算法的项目实现

    C语言异或校验算法的项目实现

    异或校验算法(XOR校验)是一种简单的校验算法,用于检测数据在传输或存储过程中是否发生了错误,本文主要介绍了C语言异或校验算法的项目实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-08-08
  • 弦图ZOJ 1015 Fishing Net 判定方法

    弦图ZOJ 1015 Fishing Net 判定方法

    弦图,算法完全按照CDQ的PPT上给的最大势算法(MCS)完美消除序列..需要的朋友可以参考下
    2012-11-11
  • 解决C++中重定义的方法总结

    解决C++中重定义的方法总结

    本篇文章是对C++中重定义的解决方法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05

最新评论