필터 지우기
필터 지우기

Saving Loop Data into two different cell arrays

조회 수: 1 (최근 30일)
Christopher Hall
Christopher Hall 2015년 2월 4일
편집: Christopher Hall 2015년 2월 4일
Hi Everyone,
I am having problems with a bit of looping code which imports all the .csv files from a folder. The .csv files have two data columns and are numerical. I am trying to extract the columns from each file into two different cell arrays. One which stores all of the column one data from a .csv file and then puts it in a column and the same with column two with each file.
I am trying to end up with something like this.
D_Array Where D 1:4 are roughly 512x1
File(i) 1 2 3 4
D1 D2 D3 D4
At the moment as far as I can tell the loop is working however I am just capturing the last files data.
I am really struggling to implement the other answers on the forum as they are all working with one array and not multiple array outputs within a loop.
I hope this all make sense! I didn't like the look of the uploaded format below so attached the .m file.
Regards,
Chris
Code Below:
if true
clear all clc
%% Import Multiple Files...Assign ArrayData...Assign Depth delimiter = ','; if nargin<=2 startRow = 2; endRow = inf; else endRow = 2; end %% Format string for each line of text: % column1: double (%f) % column2: double (%f) formatSpec = '%f%f%[^\n\r]'; %% Open the folder dir. cd '/Users/Chris1/Documents/MATLAB/Terrain/TerrainSlices'; files=dir('*.csv'); Num = length(files(not([files.isdir]))) %% Open each csv k = 1;
for i=1:Num fid= fopen(files(i).name); data(k) = importdata(files(i).name) DA = textscan(fid, formatSpec, endRow(1)-startRow(1)+1, 'Delimiter', delimiter, 'HeaderLines', startRow(1)-1, 'ReturnOnError', false) for block=2:length(startRow) frewind(fid) DABlock = textscan(fid, formatSpec, endRow(block)-startRow(block)+1, 'Delimiter', delimiter, 'HeaderLines', startRow(block)-1, 'ReturnOnError', false) for col=1:length(DA) DA{col} = [DA{col};DABlock{col}] end end
%%Allocate imported data to column Array
% -------->>>>>>>>>>Having Problems here
for DA{1} = {:,i}
D_Array = D_Array + DA{1}
end
E_Array = DA{2}
% -------->>>>>>>>>>
%%Increment to next line
k = k + 1;
end
% Depth Array Data Scripted on {i} initial = 0 increase on k=i Number of % Depth files
kmax = max(k)-1; Depth_Array = [1:kmax]; %Move Back to working dir Matlab cd '/Users/Chris1/Documents/MATLAB/Terrain'; %Import if succesful if error say error importing
%uiwait(msgbox('Multiple Import Completed','Success','modal'));
%% end

답변 (0개)

카테고리

Help CenterFile Exchange에서 Environment and Settings에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by