How can I load .psv file to MATLAB?

조회 수: 6 (최근 30일)
Jhon Gray
Jhon Gray 2019년 5월 9일
댓글: Walter Roberson 2019년 10월 11일
I have downlaoded datase from PhysioNet/Computing in Cardiology Challenge 2019. Here all the data are in .psv format. Can anyone help me showing the way of loading this format data.
  댓글 수: 5
Diana Simona
Diana Simona 2019년 10월 11일
편집: Diana Simona 2019년 10월 11일
Hey,
Have you figured it out how to do this?
Because i have encountered the same problem, i can't see and extract the values.
I can open the file and see the headers (HR|O2Sat|Temp|SBP|MAP|DBP|Resp etc). I can also see some values here and there, but i get a lot of NaN values.
ps: i dont have a lot of Matlab experience
Walter Roberson
Walter Roberson 2019년 10월 11일
What happened when you used the two methods that Jan suggested?

댓글을 달려면 로그인하십시오.

채택된 답변

Jan
Jan 2019년 5월 9일
편집: Jan 2019년 5월 13일
A small example would reveal, if this guess is correct: It is a pipe-separated text file. Then:
readmatrix(filename, 'Delimiter', '|', 'FileType', 'text')
[EDITED] And a dull manual method:
function [Data, Header] = ReadPSV(File)
% [Data, Header] = ReadPSV(File)
% INPUT:
% File: Char vector or string: Name of the file
% OUTPUT:
% Data: Double matrix, [nVariables x nFrames]
% Header: {nVariables x 1} cell string
%
% License: CC BY-SA 3.0
[fid, msg] = fopen(File, 'rt');
assert(fid ~= -1, 'Tools:ReadPSV:MissFile', ...
'Cannot open file:%s\n%s', File, msg);
Line1 = fgetl(fid); % Import 1st line
Header = strsplit(Line1, '|'); % Reply variables as cell string
n = numel(Header); % Number of variables
% [EDITED] start
str = fread(fid, [1, inf], '*char'); % Import data as string
str(str == char(10)) = '|'; % Replace line break by |
% [EDITED] end
Data = sscanf(str, '%f|', [n, inf]); % Extract numbers
fclose(fid);
end
  댓글 수: 3
Walter Roberson
Walter Roberson 2019년 5월 10일
Jan, you can't fileread() a fid.
Jan
Jan 2019년 5월 13일
@Walter: Thank you. Fixed. And the next bug was:
str(str = char(10)) = '|';
% ^ Of course: ==

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Ricardo Salinas Martinez
Ricardo Salinas Martinez 2019년 5월 28일
Hello!
Jan's answer works preaty well, but if you read the codes provided by the challenge you will see how they read the files and there is no need for you to read them differently.

카테고리

Help CenterFile Exchange에서 Matrices and Arrays에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by