matlab转Excel .mat转Excel

 大家好 我是一名开发人员,今天有客户找到我 希望我能将它的.mat 文件转换成Excel格式。由于我从未接触过MATLAB 。于是我让客户截图给我看下mat文件内容。

2022年8月9日19:10:553 后记:

已经有了非常好用的在线转换程序

www.DataConvert.cn 

可以直接处理 2维数组
 


看到图片之后 第一反应是拿记事本打开看看是什么格式果然 是乱码 。
然后我简单的搜索了一下matlab ,和.mat文件 。
发现这个软件其实是很成熟的一款数据处理分析软件。
因为我使用的是C# 我去找了下开源库 MathNet 很方便的将.mat文件转换成Array数组
拿到数组之后 再讲数组转成DataTable 最终另存为Excel文件。

 

  1. Thread t = new Thread(()=> {
  2.                     for (int i = 0; i < openFileDialog.FileNames.Length; i++)
  3.                     {
  4.                         string Filename = openFileDialog.FileNames[i];
  5.                         string sheetName = openFileDialog.SafeFileNames[i].Replace(".mat", ".xlsx");
  6.                         Matrix<double> m2 = MatlabReader.Read<double>(Filename);
  7.                         double[,] testArray = m2.ToArray();
  8.                         DataTable dt = new DataTable();
  9.                         dt = ConvertDataTable(testArray);
  10.                         string fname = savePath + sheetName;
  11.                         if (isfa)
  12.                         {
  13.                             DataTable dt_new = RevertRowToColumn(dt);
  14.                             DataTableToExce1(dt_new, sheetName, fname);
  15.                         }
  16.                         else
  17.                         {
  18.                             DataTableToExce1(dt, sheetName, fname);
  19.                         }
  20.                         this.Invoke(new EventHandler(delegate
  21.                         {
  22.                             label1.Text = (i + 1).ToString() + "/" + openFileDialog.FileNames.Length + "    " + openFileDialog.SafeFileNames[i];
  23.                         }));
  24.                        
  25.                         if (i == openFileDialog.FileNames.Length - 1)
  26.                         {
  27.                             System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo("Explorer.exe");
  28.                             psi.Arguments = "/e,/select," + savePath;
  29.                             System.Diagnostics.Process.Start(psi);
  30.                         }
  31.                         this.Invoke(new EventHandler(delegate
  32.                         {
  33.                             label1.Text = "转换完成";
  34.                         }));
  35.                     }
  36.                 });
  37.                 t.Start();
复制代码

于是通过简单的一些操作 实现一个批量导入.mat文件 转换成Excel  客户.mat文件列超过5000在Excel中不是很方便显示, 顺便加了一个行列转换的功能
 



 


.mat转换DataTable并且进行了行列的互换。

思路已整理完毕,有动手能力的可以按我的思路去做。另外本人有写好的程序,如果您愿意付一点费用也可以直联系我。
我比较擅长文件处理,数据清洗。一般小问题小软件都可以咨询

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值