matlab:Excel数据导入C程序中

前言

在上一篇文章中《matlab:Excel文件数据的导入及导出》,我说明了如何将Excel数据导入到matlab,但是习惯了C编程的我使用matlab并不是那么顺手,所以希望把Excel的数据导入到C程序中,这样就方便我们编程了。

实现

我百度了一段时间,想找找能不能直接将Excel的数据导入到C程序中,但是并没有找到,可能是我百度的能力还有待提高,翻了翻matlab教程的数据,我找到一种方法,以matlab作为中介,把Excel数据导入到C程序中。

在matlab中可以把数据导出到二进制文件,而C语言是可以读取二进制文件的,这样我们就可以把Excel的数据导入到C语言中了。思路就是这样,下面是实现的代码。

我们先把Excel的数据导入到matlab中,然后执行下面的命令,就可以将数据导出为二进制文件。

fid = fopen('data.bin','w');
s = fwrite(fid,A,'integer*4');
fclose(fid);

矩阵A的数据:
这里写图片描述
因为矩阵A里面保存的是整数,所以是’integer*4’。

但是要注意的是:因为matlab是以列优先存储的,而C语言是行优先存储,所以我们在使用matlab导出二进制文件之前,需要先将矩阵A进行转置,然后再导入,这样C程序读取的时候才能是正确的结果。
转置命令:A = A’

接下来就是C程序的读取了。
我们把生成的data.bin文件放在C程序的目录,接下来就直接上代码了。

#include<iostream>
using namespace std;
#include<fstream>
int main()
{
    FILE *fp;
    int d[6][5];
    if(fp=fopen("data.bin","rb"))
    {
        for(int i=0;i<6;i++)
        {
            fread(&d[i][0],sizeof(int),5,fp);
        }
    }

    for(int i=0;i<6;i++)
    {
        for(int j=0;j<5;j++)
            cout<<d[i][j]<<"  ";
        cout<<endl;
    }
    return 0;
}

这个就是关键操作了,每次读取5个数据放在数组d的每一行中,读取6此就是全部的数据了。

for(int i=0;i<6;i++)
{
    fread(&d[i][0],sizeof(int),5,fp);
}

下面是程序运行的结果:
这里写图片描述

小结

使用matlab作为中介就可以使C程序去读取Excel的数据,因为我不太会matlab编程,所以只能这样去操作了,如果擅长matlab编程的朋友,这样方法就没什么作用了。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值