matlab文件读写处理实例(一)——不规则文件读取
数据:
A) Title: Income Data
B) Relevant Information:
Marketing Database.
Source: Impact Resources, Inc., Columbus, OH (1987).
A total of N=9409 questionnaires containg 502 questions were
filled out by shopping mall customers in the San Francisco Bay area.
1 ANNUAL INCOME OF HOUSEHOLD (PERSONAL INCOME IF SINGLE)
1. Less than $10,000
2. $10,000 to $14,999
3. $15,000 to $19,999
4. $20,000 to $24,999
5. $25,000 to $29,999
6. $30,000 to $39,999
7. $40,000 to $49,999
8. $50,000 to $74,999
9. $75,000 or more
2 SEX
1. Male
2. Female
3 MARITAL STATUS
1. Married
2. Living together, not married
3. Divorced or separated
4. Widowed
5. Single, never married
4 AGE
1. 14 thru 17
2. 18 thru 24
3. 25 thru 34
4. 35 thru 44
5. 45 thru 54
6. 55 thru 64
7. 65 and Over
5 EDUCATION
1. Grade 8 or less
2. Grades 9 to 11
3. Graduated high school
4. 1 to 3 years of college
5. College graduate
6. Grad Study
--------------------------------
问题:读取上面数据文件中红色部分的数据,将结果保存到元胞数组。
B) Relevant Information:
Marketing Database.
Source: Impact Resources, Inc., Columbus, OH (1987).
A total of N=9409 questionnaires containg 502 questions were
filled out by shopping mall customers in the San Francisco Bay area.
1 ANNUAL INCOME OF HOUSEHOLD (PERSONAL INCOME IF SINGLE)
1. Less than $10,000
2. $10,000 to $14,999
3. $15,000 to $19,999
4. $20,000 to $24,999
5. $25,000 to $29,999
6. $30,000 to $39,999
7. $40,000 to $49,999
8. $50,000 to $74,999
9. $75,000 or more
2 SEX
1. Male
2. Female
3 MARITAL STATUS
1. Married
2. Living together, not married
3. Divorced or separated
4. Widowed
5. Single, never married
4 AGE
1. 14 thru 17
2. 18 thru 24
3. 25 thru 34
4. 35 thru 44
5. 45 thru 54
6. 55 thru 64
7. 65 and Over
5 EDUCATION
1. Grade 8 or less
2. Grades 9 to 11
3. Graduated high school
4. 1 to 3 years of college
5. College graduate
6. Grad Study
--------------------------------
问题:读取上面数据文件中红色部分的数据,将结果保存到元胞数组。
fid=fopen('marketing.info.txt','r');
while ~feof(fid)
line=fgetl(fid);
if ~ischar(line),break,end
if length(line)>1 && strcmp(line(2),'2')
display(line)
for i=1:2
line=fgetl(fid);
SEX{i}=line(17:end);
end
%display(line);
continue;
continue;
end
if length(line)>1 && strcmp(line(2),'3')
display(line)
for i=1:4
line=fgetl(fid);
MARITAL_STATUS{i}=line(17:end);
end
continue;
end
end
while ~feof(fid)
line=fgetl(fid);
if ~ischar(line),break,end
if length(line)>1 && strcmp(line(2),'2')
display(line)
for i=1:2
line=fgetl(fid);
SEX{i}=line(17:end);
end
%display(line);
continue;
continue;
end
if length(line)>1 && strcmp(line(2),'3')
display(line)
for i=1:4
line=fgetl(fid);
MARITAL_STATUS{i}=line(17:end);
end
continue;
end
end