Problem with textscan for importng textfile

1 次查看(过去 30 天)
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 个评论
Jan
Jan 2017-4-18
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.
Stephen23
Stephen23 2017-4-18
dlmread might be a better choice for reading this file.

请先登录,再进行评论。

采纳的回答

Star Strider
Star Strider 2017-4-18
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 个评论
Rica
Rica 2017-4-19
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

请先登录,再进行评论。

更多回答(0 个)

标签

Community Treasure Hunt

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

Start Hunting!

Translated by