首先我们需要创建一个空的excel表格“实例”,再写入所需的表格“表头”内容,命名为excel_title。
clear;
clc;
close all;
excel_title={'时间x','时间单位','sin(x)','cos(x)','exp(-x)+5'};
定义时间变量x的范围,并转置。定义计算公式,并将计算结果存入矩阵。
x=(0:0.1:1)';
y1=sin(x);
y2=cos(x);
y3=exp(-x)+5;
y=[y1,y2,y3];
相对较为复杂的“时间单位”这一列内容,我们先确定它在excel中需要多少空单元格,并创建相应空间,再在定义赋值其中的内容。
N=length(x);
danwei=cell(N,1);
danwei(:)={'秒'};
回归之前文章(matlab读取写入excel文件-CSDN博客),将上述内容创建并写入excel表格“实例”中。
xlswrite('实例.xlsx',excel_title);
xlswrite('实例.xlsx',x,'sheet1','A2');
xlswrite('实例.xlsx',danwei,'sheet1','B2');
xlswrite('实例.xlsx',y,'sheet1','C2');
运行即可。
补充:
上述最终写入数据内容的过程,使用了四次“xlswrite”函数,较为复杂,我们知道在matlab写入excel中,有“num,txt,raw”三种内容,其中raw是所有内容,因此我们直接创建raw内容,并一次性写入。
raw=cell(12,5);
raw(1,:)=excel_title;
raw(2:end,1)=num2cell(x);
raw(2:end,2)=danwei;
raw(2:end,3:5)=num2cell(y);
xlswrite('实例.xlsx',raw);
注意,因为x和y的内容都是数值矩阵,因此这里需要依靠num2cell函数将其转换为单位矩阵,再赋值。