【小白本白】使用MATLAB计算公式,并把结果输出到Excel

【前情提要】小白从未使用过MATLAB软件,刚刚上手,尝试简化一些日常的计算工作。因为我知道自己写的代码非常冗长也很呆,并且自己对软件使用十分不熟练。本帖仅是为了记录一下学习的过程,完全不能作为教学贴使用。希望各位大佬看到后轻喷,也希望能够有大佬能留下更常用更便捷的方法。


【正文部分】想要获得气温、空气密度与海拔的关系,并计算温度、空气密度随海拔上升的数值。

根据空气动力学书籍,我们能够得到温度与海拔的关系式:

大气密度与海拔的关系式:

0-11000m

 11000-20000m

 

 20000-32000m

 接下来编写MATLAB程序:

为了之后输出到Excel表格方便查看,先为Excel表格编写表头:

%制作表头
rowName=cell(1,3);
rowName{1,1}='海拔高度h(m)';
rowName{1,2}='温度T(℃)';
rowName{1,3}='空气密度ρ(kg/m^3)';

在桌面创建表格,并把表头写入

xlswrite('C:\Users\ChenMX\Desktop\T_Rho.xlsx',rowName(1,1),'sheet1','A1');
xlswrite('C:\Users\ChenMX\Desktop\T_Rho.xlsx',rowName(1,2),'sheet1','B1');
xlswrite('C:\Users\ChenMX\Desktop\T_Rho.xlsx',rowName(1,3),'sheet1','C1');
%将表头分配到Excel表格的第一行各个位置。

给定初始条件

%已知的初始条件,海平面上的标准值,密度rho,温度T0,压强P0
rho0=1.225;T0=288.15;P0=101325;

 根据上述的公式,将代码分为三段,第一段为0-11000m段。

设置海拔高度从0-11000m,每隔500m计算一次,h为一个一维行向量,元素个数为(11000/500+1=23个) ,之后T与Rho的计算都需要h的参与,所以都是一维行向量。那么A就是一个3行23列的矩阵。希望Excel表能够竖着输出,所以将A转置后成为B。因为表格的第一行已经写了表头,所以写入表格的时候选择sheet1,并且从A2开始写。

%海拔为0-11000m阶段
Pa=P0;
h=0:500:11000;
T=T0-0.0065*h;
Rho=rho0*(T/T0).^4.25588;
A=[h;T;Rho];
B=A';
xlswrite('C:\Users\ChenMX\Desktop\T_Rho.xlsx',B,'sheet1','A2')

同理写出在11000-20000m和20000-320000m时候的代码,其实只要复制前面的代码稍微改改就可以。注意在11000-20000m平流层段的时候温度不变,那么需要单独设一个元素都相同的一维向量,从11500-20000m中间间隔500共有(20000-11500)/500+1=18个,使用repmat语句创建。

%海拔为11000m-20000m阶段 
h=11500:500:20000;
T=repmat(216.65,1,18);
Rho=0.36392*exp((-h+11000)/6341.62);
A=[h;T;Rho];
B=A';
xlswrite('C:\Users\ChenMX\Desktop\T_Rho.xlsx',B,'sheet1','A25')

%海拔为20000m-32000m阶段
h=20500:500:32000;
T=216.65+0.001*(h-20000);
Rho=0.088035*(T/216.65).^-35.1632;
A=[h;T;Rho];
B=A';
xlswrite('C:\Users\ChenMX\Desktop\T_Rho.xlsx',B,'sheet1','A43')

最后输出的结果如图所示:

  • 7
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用MATLAB中的xlswrite函数将cell数组输出Excel中。具体步骤如下: 1. 准备要输出的cell数组,例如: data = {'姓名', '年龄', '性别'; '张三', 20, '男'; '李四', 25, '女'; '王五', 30, '男'}; 2. 使用xlswrite函数将数据输出Excel中,例如: filename = 'data.xlsx'; % 指定输出Excel文件名 sheet = 1; % 指定输出的工作表 xlswrite(filename, data, sheet); 3. 打开Excel文件,可以看到数据已经成功输出到指定的工作表中。 需要注意的是,xlswrite函数只能输出数值、字符和公式等基本数据类型,如果要输出更复杂的数据类型,需要使用其他方法,例如使用COM接口或者ActiveX控件等。 ### 回答2: 在MATLAB中,我们可以将一个单元格数组(Cell)输出Excel工作簿中。下面是一些步骤和示例代码: 步骤一:创建一个单元格数组 在MATLAB中,您可以通过以下方式创建一个单元格数组: cellArray = {'apple', 'banana', 'orange'; 2, 4, 6; true, false, false}; 步骤二:将单元格数组输出Excel中 要将单元格数组输出Excel中,您可以使用MATLAB的“xlswrite”函数。下面是代码: filename = 'mySpreadSheet.xlsx'; % 将文件命名为'mySpreadSheet.xlsx' sheet = 1; % 将数据写入工作簿第一个工作表 xlRange = 'A1'; % 从A1单元格开始写入数据 xlswrite(filename, cellArray, sheet, xlRange); 上述代码使用“xlswrite”函数将单元格数组写入一个名为“mySpreadSheet.xlsx”的Excel工作簿的第一个工作表中,就从单元格“A1”开始。 如果您需要更改写入数据的工作表或单元格范围,可以修改“sheet”和“xlRange”变量。 此外,如果您想要在工作簿中从现有工作表开始写数据,则可以将“sheet”变量设置为该工作表的名称或索引号。 最后,当您运行代码后,打开Excel工作簿,您应该看到单元格数组的数据已被成功输出到工作簿中了。 ### 回答3: Matlab是一个非常强大的科学计算工具,可以用来处理各种数据类型,包括cell。当需要将cell输出Excel中时,可以使用Matlab内置的xlswrite函数。 xlswrite函数的基本语法是:xlswrite(filename,A) 其中,filename是Excel文件的路径和名称,A是要写入Excel文件的数据。要将cell输出Excel中,需要将cell转换成矩阵。可以使用cell2mat函数,将cell转换成矩阵后再调用xlswrite函数将其输出Excel中。 下面是一个完整的示例代码: % 创建cell数据 data = {'Name','Age','Gender';'Tom',20,'Male';'Lucy',18,'Female'}; % 将cell转换成矩阵 mat_data = cell2mat(data); % 将矩阵输出Excel文件中 filename = 'data.xlsx'; sheet = 1; xlRange = 'A1'; xlswrite(filename,mat_data,sheet,xlRange); 这个例子中,首先创建了一个包含姓名、年龄和性别的cell数组data,然后使用cell2mat函数将其转换为矩阵mat_data,最后调用xlswrite函数将矩阵输出Excel文件中。 需要注意的是,如果Excel文件不存在,则会自动创建一个新的文件;如果文件已经存在,则会将数据覆盖到指定的位置。因此,在使用xlswrite函数输出数据时,需要确保文件名、工作表名称和输出位置都是正确的。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值