MATLAB将数字字符转换成双精度数据(str2double)
本文首先介绍MATLAB读取文本文件(txt)中的数据(包括字符串和数字),然后介绍将数字字符转换成双精度数据(str2double),最后介绍根据得到的数据绘制图像(plot)。
操作方法
- 01
第一,首先给出文本文件(pressure.txt),其内容如下,包括字符串和数字: Teperature Pressure 273.15 101412.95 274.15 101784.22 275.15 102155.50 ... ... 文本文件pressure.txt第一列数据表示温度,第二列数据表示气压。
- 02
第二,下面利用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的两列数据。
- 03
第三,保存和运行上述脚本,在命令行窗口得到如下结果: T = 'Teperature' '273.15' '274.15' '275.15' ... pres = 'Pressure' '101412.95' '101784.22' '102155.50' ... 可以发现数据均带单引号'',这是由于第二步textscan(fileID1,'%s %s')是按字符型读取文本文件pressure.txt的原因。
- 04
第四,将数字字符转换成双精度数据(str2double),接着输入如下代码: T=str2double(T(2:32)) pres=str2double(pres(2:32))
- 05
第五,保存和运行上述脚本,在命令行窗口得到如下结果: T = 273.1500 274.1500 275.1500 ... pres = 1.0e+05 * 1.0141 1.0178 1.0216 ... 可以看到单引号''消失,数字字符已经转换成双精度数据。
- 06
第六,下面根据读取得到的数据绘制图像,接着输入如下代码: 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)')
- 07
第七,保存和运行上述脚本,得到如下图形,x轴表示温度,y轴表示气压。