您的位置首页百科问答

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

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

的有关信息介绍如下:

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轴表示气压。