近来运行程序的过程中需要将循环的结果导入excel文件中,由于保存的结果比较多,所以我想有没有便捷的方法把多个结果汇总,并且给出每一列对应的结果名称,于是我发现了matlab中的宝藏数据类型–table。对我来说table是比cell更不常用的数据类型了,但是看过matlab的官方文档之后,我不禁拍了拍自己的大腿,后悔自己没有早点用上table。

Table

官方文档之table介绍 本次用的到主要是以下内容:

将计算结果保存到res列表 将结果保存成表_数据


首先我们要创建一个table格式的变量,要给它指定大小(size,如果不确定多少行,先写1就行,因为后面来新的还可以append),指定每列的名称(VariableNames),以及每列的数据类型(可以用class查看数据类型),上述例子中定义出来的就是T2这个变量,但此时里面就只有表头,没有条目,所以需要按照刚刚定义的顺序建立一个新的条目,并通过T2(1,:)将其放入表格的第一行,此时我们就可以保存结果到xlsx里面了,这里要用到writetable这个函数(其实一开始我百度“matlab保存结果到excel”,很多答案中给出的都是xlswrite这个函数,但是官方文档已经提示,不建议使用xls一类的函数了,而是推荐改用writetable, writecell, writematrix,如下图所示)

将计算结果保存到res列表 将结果保存成表_matlab_02


所以这里改用writetable

writetable

官方文档之writetable 请看“将数据追加到表的底部”这部分的内容(非常实用)

将计算结果保存到res列表 将结果保存成表_matlab_03


前面一部分是在创建table数据,writetable这句就是将表T写入txt文件中(这里不局限于txt,可以导入xlsx文件中)

如果有了新的结果,我们需要将整个table重新导入xls中吗?答案是不需要,我们只需要将新增的结果导入即可,如何实现呢?

将计算结果保存到res列表 将结果保存成表_数据类型_04


(注意这里的newInsect是table格式,不是cell哦)如果你想指定sheet或者不想从excel表格中的A1位置开始存放数据,可以参照下方内容进行指定

将计算结果保存到res列表 将结果保存成表_txt文件_05


当然,writetable还有很多功能,我这里只是想简单保存结果,感兴趣的朋友可以去仔细阅读以下官方文档,一定会有不少收获~

将计算结果保存到res列表 将结果保存成表_将计算结果保存到res列表_06