Import Multiple Text Files into multiple arrays

조회 수: 8 (최근 30일)
Shrisha Panda
Shrisha Panda 2020년 4월 15일
댓글: Shrisha Panda 2020년 4월 15일
I have 62 flies - each file has 4 columns containing variable number of rows (between 226-300 rows). The number of rows corresponds to the number of raindrops. The first column is the X coordinate of the start of the raindrop, the second column is theh Y coordinate of the start of the raindrop. The last two columns are the X and Y coordinates of the end of the raindrop. The data is decimals
The files all have the same start to the name 'XYpoints_timeFromDeparture_Z.txt' where Z is 0,30,60 etc all the way to 1830
I need to find a way, using a for loop, to import all the data - then each file needs to put the data from cells into arrays.
This is how I did it for one file:
fileName = 'XYpoints_timeFromDeparture_0.txt';
fileID = fopen(fileName);
XXYY = textscan(fileID,'%f %f %f %f'); % puts the data into cells
fclose(fileID);
A = cell2mat(XXYY) % cell to array
we have XXYY which is a 1x4 array. Each cell is a vector (Xa, Ya, Xb, Yb)
What I need to do is make a an array as a 62x1. Each cell needs to have the XXYY which then has the vector per cell.
I tried using this code.
for i = 0:30:1830
fileName ='XYpoints_timeFromDeparture_%d.txt', i;
fileID = fopen(fileName);
XXYY = textscan(fileID,'%f %f %f %f'); % puts the data into cells
fclose(fileID);
A = cell2mat(XXYY) % cell to array
end
Doing this, gets me the error using textscan
  댓글 수: 3
Shrisha Panda
Shrisha Panda 2020년 4월 15일
how do i prevent that?
Stephen23
Stephen23 2020년 4월 15일
"how do i prevent that?"
See the examples in the MATLAB documentation:

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

채택된 답변

Stephen23
Stephen23 2020년 4월 15일
편집: Stephen23 2020년 4월 15일
D = 'path to the directory where the files are saved';
V = 0:30:1830;
N = numel(V);
C = cell(1,N);
for k = 1:N
F = sprintf('XYpoints_timeFromDeparture_%d.txt',V(k));
[fid,msg] = fopen(fullfile(D,F),'rt');
assert(fid>=3,msg)
C(k) = textscan(fid,'%f%f%f%f', 'CollectOutput',true);
fclose(fid);
end
All of the imported data will be in the cell array C:
  댓글 수: 4
Stephen23
Stephen23 2020년 4월 15일
편집: Stephen23 2020년 4월 15일
For some reason you added a space character:
fopen(fullfile(D,F),'rt') % My answer shows this
fopen(fullfile(D,F),' rt') % You tried this
% ^ You added this
Shrisha Panda
Shrisha Panda 2020년 4월 15일
Ah yes - it works perfectly now thank you!

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Low-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