Importing and Organizing Text File Data

2 ビュー (過去 30 日間)
Binay Singh
Binay Singh 2020 年 10 月 20 日
編集済み: Stephen23 2020 年 10 月 20 日
Hello,
I have a text file from an experiment, and I would like to be able to import the numerical data as well as the strings for every listed variable (Start Date, End Date, A, B, etc...). Some of the data are strings, some are a single numerical values, and some are large matrices. I have tried uiimport and importdata, but due to the format of the text file it does not import as sperate string and data arrays. Instead, it is usually a large char array if I can even import anything at all. Any assistance on code that could import and organize my text file for me to be able to do analysis would be apprecaited. I have attatched an exmaple of the text files I am dealing with. Thanks.

採用された回答

Stephen23
Stephen23 2020 年 10 月 20 日
編集済み: Stephen23 2020 年 10 月 20 日
This efficiently reads all of the file data into one structure.
[fid,msg] = fopen('Example_File.txt','rt');
assert(fid>=3,msg)
out = struct();
while ~feof(fid)
pos = ftell(fid);
str = fgetl(fid);
str = strtrim(str);
if numel(str) % ignore blank lines
spl = regexp(str,':','once','split');
spl = strtrim(spl);
if isnan(str2double(spl{1}))
fnm = strrep(spl{1},' ','');
val = str2double(spl{2});
if isnan(val) % string
out.(fnm) = spl{2};
else % numeric scalar
out.(fnm) = val;
end
else % numeric matrix (converted to vector)
fseek(fid,pos,'bof');
vec = fscanf(fid,'%*d:%f%f%f%f%f',[1,Inf]);
out.(fnm) = vec;
end
end
end
fclose(fid);
Giving:
>> out
out =
StartDate: '08/26/20'
EndDate: '08/26/20'
Subject: 1
Experiment: 'RIRR ETOH'
Group: ''
Box: 1
StartTime: '11:01:16'
EndTime: '12:39:44'
MSN: 'KGB_JB_PR4_RightLev'
A: 408
C: 0
D: 0
F: 409
G: 0
H: 57
J: 30
K: 0
L: 0
M: 0
N: 0
O: 0
P: 0
Q: 0
R: 14
S: 300
U: 0
V: 0
W: 0
X: 4
Y: 0
Z: 0
B: [1x1001 double]
E: [1x2001 double]
I: [1x101 double]
T: [0 5493.1 0 0 0]
>>

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLow-Level File I/O についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by