Read multiple text files and save the data into matrix

Hi
I have multiple text files (for example I have attaced here 2 files). I want to read them, and save the data into matrix. But I only want the data above the first dotted line (text left side to : in first column, and other data after : to the second column). Secondly, I want to save the data which is between two dotted lines (----). Again, the data under Item is in first column, and corresponding 3rd column in second column. Please help me some how to do this.

 採用された回答

Ingrid
Ingrid 2016 年 1 月 8 日

0 投票

if your file always has the same amount of lines you could do something like this (if not, you need to check where the ---- occurs)
for ii = 1:Nfiles
fid = fopen(fileNames{ii});
if fid == -1
error('Unable to open txtfile');
end
fileData1{ii} = textscan(fid,'%s %s','Delimiter',':','HeaderLines',1,21);
fileData2{ii} = textscan(fid,'%s %s %s','Delimter','\t','HeaderLines',2);
fclose(fid);
end

5 件のコメント

Kanakaiah Jakkula
Kanakaiah Jakkula 2016 年 1 月 8 日
編集済み: Kanakaiah Jakkula 2016 年 1 月 8 日
Sir
But how to specify the location of the files.
giving following error: ??? Undefined function or variable 'Nfiles'.
Error in ==> ReadTextFiles_0108_m1 at 2 for ii = 1:Nfiles best regards, Mekala
Ingrid
Ingrid 2016 年 1 月 8 日
of course this is something that you have to provide, I do not know how many files you have, nor where they are located. You can look into the dir() function to give you a list of fileNames and use numel(fileNames) to obtain Nfiles (=number of files)
p.s. it is madam
Kanakaiah Jakkula
Kanakaiah Jakkula 2016 年 1 月 8 日
Hello Madam,
My files D:\Mekala_Backupdata\Matlab2010\Filesfolder\Try2. But the the number of text files will vary. I use the following code
clc
clear all
close all
FileList=dir('D:\Mekala_Backupdata\Matlab2010\Filesfolder\Try2/');
j=1;
for i=3:1:(size(FileList)) %%read all files from folder of specified dir
FileName{j}=FileList(i).name;
j=j+1;
end
for ii = 1:j
fid = fopen(fileNames{ii});
if fid == -1
error('Unable to open txtfile');
end
fileData1{ii} = textscan(fid,'%s %s','Delimiter',':','HeaderLines',1,21);
fileData2{ii} = textscan(fid,'%s %s %s','Delimter','\t','HeaderLines',2);
fclose(fid);
end
But it giving me below error:
??? Undefined variable "fileNames" or class "fileNames".
Error in ==> ReadTextFiles_0108_m1 at 12 fid = fopen(fileNames{ii});
Kindly help Madam
Kanakaiah Jakkula
Kanakaiah Jakkula 2016 年 1 月 14 日
Kindly help
Walter Roberson
Walter Roberson 2016 年 1 月 15 日
Change
FileName{j}=FileList(i).name;
to
FileNames{j}=FileList(i).name;

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by