matlab对字符串的操作

来源:百度知道 编辑:UC知道 时间:2024/05/25 20:50:19
一个a.txt文本,内容格式如下:
locus ai976 n 00989JUR
…… --(省略无意义的字符)
ORGIN
1 gcggcccagg cccggaacct tccctggtcg tgcgccatat gtaaggccag ccgcggcagg
61 accaaggcgg cggtgtcagc tcgcgagcct accctccgcg gacggtcttg ggtcgcctgc
121 tgcctggctt gcctggtcgg cggcgggtgc cccgcgcgca cgcgcaaagc ccgccgcgt
……
……
//
locus sklf 08379 JUR0837
…… ----(还是省略无意义的字符)
ORIGIN
1 ctaaggaggg agccgaaaga gcgagcggtg gggacagcca ccgctaaatg ccagcccggt
61 ggagggagga aggcggaccc caggccggtg ggaccacatc tcccagaagc cccggcgcca
121 aggcactggc ctctcagtcc tcccccgagg aggcggggcc gctggcgaag ttgaagggg
……
……
//
Locus sldjf jun08
………
……
下面格式和前面一样
问题1:用matlab编写程序读入a.txt文档然后将一系列以"ORIGIN" "//"结尾的中间的字符串提取出来(去除空格和数字)分别以a1.txt,a2.txt……形式存储在新的文件夹中
问题2:最好每句语言都有注释
另:小弟初学matlab,请求大家多多帮助~~
众所周知,现在百度分很难赚(个人认为~),所以先给10分,后续追加最少50~~
问题一少写2个字~~是 ”以"ORIGIN" 开头"//"结尾的“~~~ 小弟QQ 10

1、用fopen打开读、写文件:
fidin=fopen('old.txt','r'); % 打开你的原始txt文件
fidout=fopen('new.txt','w+'); % 新建写入的文件

2、fgetl函数一行行的读取:
while ~feof(fidin) % 判断是否为文件末尾
tline=fgetl(fidin); % 按行读取

3、判断哪些是你想要的。从你的描述看,你想要的都是以数字开头的,所以:
if double(tline(1))>=48&&double(tline(1))<=57 % 判断首字符是否是数值
fprintf(fidout,'%s\n',tline); %写入文件

4、重新载入写进去的文件(load new.txt),按字节读,读到数字和空格,进行去除。

大概思路是这样,其他的你再仔细想想。