我有一个txt文件,我需要用matlab读取里面的数据进行计算,数据是很长的蛋白质序列,序列间由段落隔开

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我有一个txt文件,我需要用matlab读取里面的数据进行计算,数据是很长的蛋白质序列,序列间由段落隔开相关的知识,希望对你有一定的参考价值。

数据如图

参考技术A 用这个命令
[a1,a2,a3,a4,a5,a6,a7,a8]=textread('D:\MATLAB2011\...\*。txt','%s%s%s%s%s%s%s%s',-1);
注意:
等式左边的字符串向量数目[a1,a2,a3,a4,a5,a6,a7,a8]与等式右边'%s%s%s%s%s%s%s%s'中的数目相同,txt或ini文档的数据读出是按行读取的,'%s%s%s%s%s%s%s%s'表示每一行的数据结构,[a1,a2,a3,a4,a5,a6,a7,a8]表示数据读出后的保存变量;
你的文档里好像只是一个很长的字符串,如果是,这样就应该可以
[a1]=textread('D:\MATLAB2011\...\*。txt','%s',-1);
可以查一下帮助文档,看textread的使用方法。追问

读取后 加上计算的程序 提示我First input must be non-sparse numeric array.,可以不用转换成数据吗?
for m=1:400
for i=1:20
amino=['A','C','D','E','F','G','H','I','K','L','M','N','P','Q','R','S','T','V','W','Y'];
[AFP]=textread('G:\matlab\work\AFP.txt','%s',-1);
l(m)=length(AFP(m));
N(m,:)=histc(AFP(m),amino);
f(i)=N(m,i)./l(m);
end
end

追答

有错误建议单步调试,找出错误的地方;
1、不太明白textread怎么会放在循环里面,这个命令是一次性把文件中所有的数据读出来;
[AFP]=textread('G:\matlab\work\AFP.txt','%s',-1);
for
...
end
2、调试看一下textread的输出是否正确,AFP变量;
3、循环部分我不清楚你想做什么,m、n是否和ATP的长度相关;

追问

我的 m、n是文件里面,AFP 的数目 一个文档里面 有上百条 AFP

追答

那也应该是这样做,读出数据AFP后,从里面找出m、n,然后再做循环部分。你干脆把txt贴一部在上面不就明白了。

matlab如何批量读取带有编号的文件

有很多文件,名字是comb1.txt, comb2.txt......comb200.txt.
读取每个txt文件的第三行中的第三列以后的数据(一共25列)。一共应该读取200行。然后把他们存到一个f(i,j)数组里,其中i=1:200,j=1:25

参考技术A

使用eval函数可以实现这样的功能。

程序在附件中

追问

不要这个,不会用,直接告诉我这个问题怎么解决,我要代码

追答

代码在附件中,直接运行就行了吧。

本回答被提问者采纳

以上是关于我有一个txt文件,我需要用matlab读取里面的数据进行计算,数据是很长的蛋白质序列,序列间由段落隔开的主要内容,如果未能解决你的问题,请参考以下文章

如何用matlab读取txt文件中的数据,并画图

matlab中如何读取多个txt文件中的某一行的数据

VC对话框读取文件

matlab如何批量读取带有编号的文件

matlab怎样按列读取txt中的数据到数组啊

matlab txt数据合并