필터 지우기
필터 지우기

Import from .txt or .csv

조회 수: 2 (최근 30일)
Brian
Brian 2012년 4월 19일
I am importing some large .csv files where I have textual column headers and row headers. I am using the readtext() function from the FEX for mixed-type files http://www.mathworks.com/matlabcentral/fileexchange/10946. I am doing this to import the matrix into a large cell in Matlab from which I can separate my text and numeric data. My column headers are dates, which are fine and show up as text for my import. My row headers are financial CUSIPS, which sometimes contain a letter and show up as text, and other times contain all numbers (and begin with 0's) and then show up as numbers.
My questions - how can I import this typed of mixed data file preserving the format of all of my original data?
{[],'12/31/1999','01/03/2000';'88553510',1,1;'88579Y10',1,1;'00282410',1,1;}
shows up as
{[],'12/31/1999','01/03/2000';88553510,1,1;'88579Y10',1,1;00282410,1,1;}
Thanks a lot, Brian

채택된 답변

Ken Atwell
Ken Atwell 2012년 4월 19일
Assuming the CSV file looks like this:
,12/31/1999,01/03/2000
88553510,1,1
88579Y10,1,1
00282410,1,1
textscan (ship with MATLAB) should be sufficient. To skip the first (header) line, and then import three columns of comma-separated data, with the first row a text string and the other two rows containing numeric data:
f = fopen ('data.csv');
C = textscan(f, '%s %n %n', 'Delimiter', ',', 'HeaderLines', 1)
fclose(f);
This will create a 1x3 cell array, which each member of the cell array being one of the rows of your CSV data.
  댓글 수: 6
Geoff
Geoff 2012년 5월 2일
The number of columns is the number of commas PLUS ONE! =)
Brian
Brian 2012년 5월 3일
Titus if you make your comment into an answer I will accept it.
Thanks a bunch,
Brian

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Data Import and Export에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by