MATLAB将数字字符转换成双精度数据

如题所述

本文首先介绍MATLAB读取文本文件(txt)中的数据(包括字符串和数字),然后介绍将数字字符转换成双精度数据(str2double),最后介绍根据得到的数据绘制图像(plot)。

第一,首先给出文本文件(pressure.txt),其内容如下,包括字符串和数字: Teperature  Pressure 273.15  101412.95 274.15  101784.22 275.15  102155.50 ...      ... 文本文件pressure.txt第一列数据表示温度,第二列数据表示气压。

第二,下面利用MATLAB读取文本文件pressure.txt,启动MATLAB,新建脚本(Ctrl+N),输入如下代码: close all; clear all; clc fileID1=fopen('pressure.txt'); A=textscan(fileID1,'%s %s'); fclose(fileID1); T=A{1} pres=A{2} 其中textscan(fileID1,'%s %s')中的'%s %s'表示按照字符型读取文本文件pressure.txt的两列数据。

第三,保存和运行上述脚本,在命令行窗口得到如下结果: T = 'Teperature' '273.15' '274.15' '275.15' ... pres = 'Pressure' '101412.95' '101784.22' '102155.50' ... 可以发现数据均带单引号'',这是由于第二步textscan(fileID1,'%s %s')是按字符型读取文本文件pressure.txt的原因。

第四,将数字字符转换成双精度数据(str2double),接着输入如下代码: T=str2double(T(2:32)) pres=str2double(pres(2:32))

第五,保存和运行上述脚本,在命令行窗口得到如下结果: T = 273.1500 274.1500 275.1500 ... pres = 1.0e+05 * 1.0141 1.0178 1.0216 ... 可以看到单引号''消失,数字字符已经转换成双精度数据。

第六,下面根据读取得到的数据绘制图像,接着输入如下代码: plot(T,pres,'r-','LineWidth',5);hold on; plot(T,pres,'LineStyle','none',... 'Marker','o','MarkerFace','k','MarkerEdge','k') set(gca,'FontSize',15,'TickDir','out','TickLength',[0.02,0.02]) xlabel('Temperature (K)'),ylabel('Pressure (Pa)')

第七,保存和运行上述脚本,得到如下图形,x轴表示温度,y轴表示气压。
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网