Matlab科研技巧:将各数组汇总成表格数据table并写入Excel文件中

       Matlab是非常全能的编程软件,不管是编程、画图、仿真、建模都不在话下。不过有的时候,我们手头的工作还需要借助其他的工具才能完成,例如:

  1. Matlab中编程运行得到想要的数据后,保存为mat文件再导入Python中开展进一步的计算;
  2. Matlab可视化得到的图像,需要导入InkscapeAdobe \ Illustrator进行优化处理;
  3. Matlab中的数组写入Excel表格中汇总统计;

       这篇文章我就最后一个过程和大家进行分享探讨。

       和以前一样,我们从实际需求出发,直接来看一个简单的例子,相信这个例子能给大家带来一些启迪。

       某天我们在实际工作中,编写了一个实现某一功能的M文件,运行之后在工作空间得到了一些规模相同的变量,下图给了一个例子:


工作空间中一些规模相同的数据

可以看到工作空间中存储了一些数据,变量名为Color、Id、Label等等,他们的规模是一样的。
我们希望做的是:

把空间中的这些数据集,即编号(Id)、标签(Label)、颜色(Color)、横坐标(X_value)、纵坐标(Y_value)编成一个表格并导出到Excel文件当中去。

下面的Matlab代码可以实现这一需求:

clc,clear

%% 一个将Matlab中的不同类型、相同规模的数据组合成表格并写入表格文件的示例
% 数据规模
N = 20;

% 表格中每一列的数据
Id = (1:N)';
Label = Id;
Color = randperm(N,N)';
X_value = rand(N,1);
Y_value = rand(N,1);

% 给表格中每一列命名,让其等于每列数据的变量名称
column_names = ["Id","Label","Color","X_value","Y_value"];

% 生成表格数据
table_data = table(Id,Label,Color,X_value,Y_value,'VariableNames',column_names);

% 将上述的表格数据写入表格文件Data_Needed.xls中,并将此表格重命名为Data
writetable(table_data,"Data_Needed.xls","Sheet","Data")

       上述代码中,我先给出了之前所谈到的数据集,然后用一个数组column\_names来预先设置好各列的列名,列名是字符串,可以自由指定;接下来用Matlab的内置函数\color{red}{table}将上述的所有数据转换为一个表格文件,转换时先将所有的数据集一一列出,然后在标签VariableNames中设置预设好的列名即可,得到的表格table\_data内容如下:

表格文件table_data

       最后我们将这个数据集写入一个叫做Data\_Needed.xls的表格文件中去,且指定表格文件中的表格名称为Data,成果参见下图:

保存在当前目录底下的表格文件Data_Needed.xls

       可见保存的时候Matab自动地会将各列的列名变成表格的列名。编写这样的一个程序有两个好处,一是防止自己从Matlab复制粘贴数据到Excel中时出错,二就是快捷方便。因此还是值得各位花点时间编一个的,特别是经常需要处理表格的时候。

       那么大功告成,一个满足基本需求的程序就是这样,在此基础之上还能实现更加细致的功能,例如保存文件在指定目录、指定数据在表格中的单元格位置。各位可自由探索。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容