本文研究如何将Matlab变量的内容写入Excel表格,以及相关的一些技巧。
写入Excel表格的函数比较简单,只有一个函数如下:
xlswrite(filename,A,sheet,xlRange)
其中的参数含义如下:
参数 | 含义 |
---|---|
filename | 文件名,可以是绝对路径也可以是相对路径 |
A | 写入表格文件的变量 |
sheet | 写入的工作表 |
xlRange | 写入的单元格区域 |
该函数的用法比较灵活,除了将四个参数都填上以外,也可以选填其中的几个参数。例如:
xlswrite(filename,A)
如果只有filename和A两个参数,那么Matlab就会默认把A填写在文件filename的活动工作表内,从A1开始填写。
打开Matlab,直接在命令行输入如下语句。
xlswrite('demo.xlsx','123','sheet1','A2');
然后在Matlab的工作区就会看到生成了一个xlsx文件:demo.xlsx。注意,如果路径下已经存在了demo.xlsx文件,就会直接写入文件,而不是新建一个。
打开该文件,在工作表sheet1中就会看到从A2单元格开始,横着分别写入了’1’,‘2’,'3’三个数字。
至此,这个小的demo就演示完成了。
在第二章的例子中,把‘123‘三个数分别写到三个单元格中了。但是如果我想把’123’这个字符串写到A2一个单元格中怎么办呢。只要把函数写成下面的样子,也就是第二个参数写成元胞数组。
xlswrite('demo.xlsx',{'123'},'sheet1','A2');
写入多个单元格也很简单,只要在第二个参数的元胞数组中加上多行多列就行。例如:
>> A = {'123','456';'789','123'}
A =
2×2 cell 数组
{'123'} {'456'}
{'789'} {'123'}
>> xlswrite('demo.xlsx',A,'sheet1','A2');
如果写入的数子是0开头的,例如010000,通过以下函数写入。
>> xlswrite('demo.xlsx',{'010000'},'sheet1','A2');
那么打开表格后会发现,开头的数字0没有了,只剩下了10000。
解决的办法也很简单,加两个单引号在变量前面就行了。
>> xlswrite('demo.xlsx',{'''010000'},'sheet1','A2');
在第二章节说的4个参数最好全都指定,不要让matlab帮你做决定。不然容易出现一些混乱。
博主刚开始写脚本的时候用for循环一个个地写入单元格数据。这样做的后果就是,如果要写入很多单元格,那就会在进程中重复的打开关闭表格文件,导致整个过程变得很慢。
最好的做法就是将变量打包成一个单元数组一次性写入表格中。
>>返回个人博客总目录