Matlab 从ASCII文件导入表
我无法在MATLAB中加载文本文件。我使用的代码是: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
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所需要的。不管怎样,我认为table
对象对于表格数据(如在此处读取)有多种优势。其中一些优势是:它们可以使用传统的行和列、线性和逻辑索引进行索引,也可以通过u使用列名(和行名,如果已定义);当显示表格时,列名与数据一起显示,而不是在结构的单独字段中,这便于识别;而且它们可以很容易地保存(使用writetable
),我想您应该展示如何在OP的数据上使用这种方法(主要有不同的delimeters和数据类型),否则这不能被认为是问题的答案(因为它解决了不同的问题)。