永发信息网

matlab选择if...else

答案:2  悬赏:50  手机版
解决时间 2021-03-15 08:36
  • 提问者网友:心牵心
  • 2021-03-15 01:07
写了一个文本读取并统计的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
最佳答案
  • 五星知识达人网友:逃夭
  • 2021-03-15 02:47
把原程序中 "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
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯