求问: Matlab中 TXT 数据导入

来源:百度知道 编辑:UC知道 时间:2024/06/18 10:52:31
L001
分段计价。
S0619-S1914-S0388-S0348-S0392-S0429-S0436-S3885-S3612-S0819-S3524-S0820-S3914-S0128-S0710

L002
分段计价。
上行:S3748-S2160-S1223-S1404-S2377-S1477-S2017-S2019-S1321-S1381-S1383-S1691-S3766-S1729-S2654-S3231-S3917-S2303-S1327-S3068-S2833-S1733-S2113-S2636-S0012-S1968-S0004
下行:S0004-S1968-S0012-S2636-S2113-S2112-S2833-S0618-S1327-S2303-S3917-S3231-S2654-S1729-S3766-S1691-S1383-S1381-S1321-S2019-S2017-S1477-S1404-S1223-S2160-S3748

L003
单一票制1元。
S0417-S0272-S1973-S3425-S1433-S3476-S2337-S1027-S1065-S2974-S0234-S0521-S3737-S3806-S1682-S1684-S3925-S3897-S2489-S2488

L004
单一票制1元。
上行:S3010-S0582-S0579-S1994-S1041-S0105-S1429-S2118-S1430-S3600-S2582-S1782-S0657-S3820-S3042-S0658-S2323-S2324-S0992-S2182-S2184-S0531-S0679
下行:S0679-S2184-S2182-S0992-S2324-S2323-S1957-S0658-S3042-S3820-S0657-S1782-S2582-S3600-S1430-S2118-S1429-S0106-S1041-S1994-S0579-S0582-S3010
...

一共到L500,要每个L存成两个矩阵,有上下行的就上行一个、下行一

你这个文档排列得不是很规矩,只能一行一行读

fid = fopen('txtname.txt');

i = 1;

if i == 1,

thisline = fget(fid);

if 判断是不是空,是不是字,如果是就忽略,或者最简单的就看长度,这一行长度超过多少就认为是有效的

if 上行下行,如果没有就如何。
% 存矩阵不如存数组方便,因为你这个结构不是很规范,数组容易处理:

result(i).upper = ....
result(i).lower = ....

end
end
end

具体的不写了吧,您也发挥点动手能力。。。

去点中文先;
因为MATLAB不能读取中文。然后用分割文件的方法。下面是我写的程序。

可以选择用split用法。