Matlab 从ASCII文件导入表

Matlab 从ASCII文件导入表,matlab,import,ascii,tabular,file-read,Matlab,Import,Ascii,Tabular,File Read,我无法在MATLAB中加载文本文件。我使用的代码是: y=load('AllReadings.txt') 这会产生错误: 文本文件内容包括: Heart Rate (BPM) GSR Respiration Rate Ambient Temperature inf 495 49.96 3 inf 495 49.96 3 inf 495 23.03

我无法在MATLAB中加载文本文件。我使用的代码是:

y=load('AllReadings.txt')
这会产生错误:

文本文件内容包括:

Heart Rate (BPM)    GSR     Respiration Rate    Ambient Temperature
inf         495     49.96           3

inf         495     49.96           3

inf         495     23.03           7

inf         496     23.03           7

inf         495     23.03           7

inf         496     23.03           11

7.68            496     23.03           11

7.68            496     23.03           14

7.68            496     23.03           14

7.68            496     23.03           15

7.68            496     23.03           14
(编者注:源数据使用制表符和空格的组合进行分隔,这些制表符和空格在渲染输出中不可见,但在编辑问题时可以看到。)


我在R2019a上进行了测试,这样的文本文件可以通过以下方式正确导入:

>y=importdata('AllReadings.txt')
y=
带字段的结构:
数据:[11×4双]
text数据:{'心率(BPM)GSR呼吸率环境温度'}
>>y.数据
ans=
Inf 495.0000 49.9600 3.0000
Inf 495.0000 49.9600 3.0000
Inf 495.0000 23.0300 7.0000
Inf 496.0000 23.0300 7.0000
Inf 495.0000 23.0300 7.0000
Inf 496.0000 23.0300 11.0000
7.6800  496.0000   23.0300   11.0000
7.6800  496.0000   23.0300   14.0000
7.6800  496.0000   23.0300   14.0000
7.6800  496.0000   23.0300   15.0000
7.6800  496.0000   23.0300   14.0000
响应

这是一个虚拟文件,因为OP没有任何数据:

header1|header2|header3|header4
adfads|sjk|jkghj|jdauuy2
0987yuh|mnjkhuy6|nmbhgf|0987yuh
098iuhyj|4e5rtyguh|67tyughj|oijk
和要导入的代码:

filename = 'dummy.txt';
nCols = 4;
delim = '|';
colFmt = repmat('%s',1,nCols);

fid = fopen(filename,'r');
header = textscan(fid, colFmt, 1, 'delimiter', delim); 
dataArray = textscan(fid, colFmt, 'delimiter', delim);
fclose(fid);

dataArray = [dataArray{:}]; % this "unpacks" the cell
在工作区中看起来像这样:

我们需要查看
AllReadings.txt
文件…请不要粘贴指向错误消息图像的链接。将错误信息复制/粘贴到问题中会更好。@cbdev420您能告诉我如何在这里上传一个文件,这样您就可以看到AllReadings.txt文件吗?我想您不能,但由于它是一个
.txt
文件,您可以复制内容并将其作为简单文本添加到问题中(将其包装在代码块中,以便更好地阅读)。如果文件太大,行太多,请只复制前几行,看看是否足够。但您也可以转到,将您的文件添加到那里,并将链接放在问题的此处。您的文件是否在每一行之间都有空行?它们应该放在一起。它们似乎是分开的,当转到第2行时,可能会遇到空白因为每一行都应该有相同的列数,所以它崩溃了。嗨!@Dev-iL我试过了,它也能工作,但是你能不能指导我如何绘制这4列,因为命令
plot
给出了错误。@Sannay如果这个答案解决了你的问题。你现在描述的是一个不同的问题。我无法知道你在做什么您做错了,因为您没有发布任何绘图代码,也没有指定错误。请参阅非常清楚的文档。您的问题可能与尝试绘图
Inf
-您应该尝试用有效值替换这些值,或者至少用
NaN
。更好的方法是使用@philgodarde定义“更好”在这种情况下,我的定义是用户所需的最小配置和调整量,而且结果似乎正是OP所需要的。不管怎样,我认为 SimultDebug <代码>通常是一个很好的函数,因为它可以处理各种类型的输入,而不是JUS。t表格。使用“readtable”可以提供更多选项,如自动将日期转换为日期时间,以及指定列格式。此外,
table
对象对于表格数据(如在此处读取)有多种优势。其中一些优势是:它们可以使用传统的行和列、线性和逻辑索引进行索引,也可以通过u使用列名(和行名,如果已定义);当显示表格时,列名与数据一起显示,而不是在结构的单独字段中,这便于识别;而且它们可以很容易地保存(使用
writetable
),我想您应该展示如何在OP的数据上使用这种方法(主要有不同的delimeters和数据类型),否则这不能被认为是问题的答案(因为它解决了不同的问题)。