MATLAB Answers

Problem with textscan for importng textfile

5 views (last 30 days)
Rica
Rica on 18 Apr 2017
Commented: Rica on 19 Apr 2017
Hi, i many text files named Data. I attached as exemple one file to schow the structure of it. I wrote a function to read the Data of these files.
function [All]=myfunction(numoffiles)
for k=1:numoffiles
fid=fopen(['Data_' num2str(k) '.txt']);
if fid == -1, error('Cannot open file'),
end
XX{k,1}=textscan(fid,'%f %f %f');
fclose(fid)
Amplitude{k,1}=XX{k,1}{1};
Resonance{k,1}=XX{k,1}{2};
Height{k,1}=XX{k,1}{3};
end
All.Amplitude=vertcat( Amplitude{:});
All.Resonance=vertcat(Resonance{:});
All.Height=vertcat(Height{:});
end
when i run this function with matlab 2014, i does what it should. But with Matlab 2017 i get Pronblems. Could someone help to solve the matter. mybe there is an easier way to sove it.

  2 Comments

Jan
Jan on 18 Apr 2017
Please explain the problems with details. Perhaps the files are not found or anything else happens. While you know already, what the problem is, we cannot even guess it without using a crystal ball.
Stephen Cobeldick
Stephen Cobeldick on 18 Apr 2017
dlmread might be a better choice for reading this file.

Sign in to comment.

Accepted Answer

Star Strider
Star Strider on 18 Apr 2017
I only had one file so I used a loop to read it twice to test the code.
This works in R2017a:
All.Amplitude = [];
All.Resonance = [];
All.Height = [];
for k1 = 1:2
fidi = fopen('Rica Data_2.txt','rt');
XXc = textscan(fidi, '%f%f%f', 'CollectOutput',1);
fclose(fidi);
XX = cell2mat(XXc);
Amplitude = XX(:,1);
Resonance = XX(:,2);
Height = XX(:,3);
All.Amplitude = [All.Amplitude; Amplitude];
All.Resonance = [All.Resonance; Resonance];
All.Height = [All.Height; Height];
end

  1 Comment

Rica
Rica on 19 Apr 2017
Thank you for you answer. That is what am looking for. it does function with the data_2.txt which i attached. But when i use it for the real Data_2(large data) it does not work as i expect. I attached the Data_2.txt. thank you

Sign in to comment.

More Answers (0)

Tags