写了一个文本读取并统计的matlab程序,有点问题请教高手!
部分程序如下:
fidin1=fopen('e:\1.txt','r+');
i=0;
while ~feof(fidin1)
tline=fgetl(fidin1);%读取一行
a=0,c=0,g=0,t=0;%这个是初始化该行中a,c,g,t四种字母的数量
for n=1:length(tline)
if tline(n)=='a'
a=a+1;
elseif tline(n)=='c'
c=c+1;
elseif tline(n)=='g'
g=g+1;
elseif tline(n)=='t'
t=t+1;
end
end
a
c
g
t
i=i+1;
显示出来的结果是重叠的,而且第二重结果全部为0,请问程序哪里有问题?
这是第一行文本的统计结果:
a =
0
c =
0
g =
0
a =
33
c =
19
g =
44
t =
15
for n=1:length(tline)
if tline(n)=='a'
a=a+1;
elseif tline(n)=='c'
c=c+1;
elseif tline(n)=='g'
g=g+1;
elseif tline(n)=='t'
t=t+1;
end
a
c
g
t
end
现在把程序改成这样了,没有0了,但第一行文本的a和c出不来,是为什么。。。
g =
9
t =
43
matlab选择if...else
答案:2 悬赏:50 手机版
解决时间 2021-03-15 08:36
- 提问者网友:心牵心
- 2021-03-15 01:07
最佳答案
- 五星知识达人网友:逃夭
- 2021-03-15 02:47
把原程序中 "a=0,c=0,g=0,t=0;"中的逗号修改为“;"
即:a = 0; c = 0; g = 0; t = 0;
问题即解决 :)
即:a = 0; c = 0; g = 0; t = 0;
问题即解决 :)
全部回答
- 1楼网友:像个废品
- 2021-03-15 04:14
clc;clear;
fidin1=fopen('e:\1.txt','r+');
i=0;
%a=0;c=0;g=0;t=0;
while ~feof(fidin1)
tline=fgetl(fidin1);%读取一行
a=0;c=0;g=0;t=0;%这个是初始化该行中a,c,g,t四种字母的数量
for n=1:length(tline)
if tline(n)=='a'
a=a+1;
elseif tline(n)=='c'
c=c+1;
elseif tline(n)=='g'
g=g+1;
elseif tline(n)=='t'
t=t+1;
end
end
a
c
g
t
i=i+1;
end
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯