MATLAB将数字字符转换成双精度数据(str2double)
的有关信息介绍如下:本文首先介绍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轴表示气压。