Read colomn data from file

1 view (last 30 days)
Mani Ahmadian
Mani Ahmadian on 8 Nov 2014
Edited: per isakson on 8 Nov 2014
Hi, I have a Unicode file as 'b.txt', contains 39 lines of header and data in other lines. I want to remove header lines and then read all data lines. I'm using this code:
FormatStr = repmat('%f ',1,12);
FileId = fopen('b.txt');
DataCell = textscan(FileId, FormatStr, 'Delimiter', ' ', 'HeaderLines', 39, 'CollectOutput', 1);
fclose(FileId);
TheData = DataCell{1};
But at final, TheData is in bad form. I want to have each column of data in a separate column in my variable TheData.
Please help me to solve it.
Thanks, Mani

Accepted Answer

per isakson
per isakson on 8 Nov 2014
Edited: per isakson on 8 Nov 2014
Try
TheData = cssm();
where
function TheData = cssm()
FormatStr = repmat( '%f', 1,12 );
FileId = fopen('b.txt');
DataCell = textscan(FileId, FormatStr ...
, 'HeaderLines', 39, 'CollectOutput', true );
fclose(FileId);
TheData = DataCell{1};
end
The problem with your code has something to do with the delimiter being "one space" or "one or many spaces". And no need (/better not) to include space in the format-string. Default takes care of it. See the documentation.
  1 Comment
Mani Ahmadian
Mani Ahmadian on 8 Nov 2014
Dear Per isakson, Nice code. Thanks a lot.

Sign in to comment.

More Answers (1)

Orion
Orion on 8 Nov 2014
Hi, try this
FileId = fopen('b.txt');
DataCell = textscan(FileId, '%.8f','Delimiter','\n', 'HeaderLines', 39);
fclose(FileId);
DataCell = (reshape(cell2mat(DataCell),12,12))';
  1 Comment
Mani Ahmadian
Mani Ahmadian on 8 Nov 2014
Dear Orion, Thanks for your fast answer. I test your code, it works on my sample file, it contains 12 rows and 12 colomns. My data file has 12 colomns but the rows are unknown. How I can reach to rows number to change your code as bellow?
MyRows=?
DataCell = (reshape(cell2mat(DataCell), MyRows ,12))';
Have a nice time
Mani

Sign in to comment.

Categories

Find more on Data Type Conversion in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!