比较R语言、perl语言,matlab中for循环和while循环的使用
作者:redcat
生物统计家园网
对于海量数据的处理时代,各种语言如数据处理的,统计计算的都应该掌握一下,各取所长,达到高效的目的。
对于R语言、perl语言,matlab中的for循环也是各有不同。
(一)R语言
R语言和matlab中以对象处理为主,体现出强大的智能性,因此对于语言的循环设计中以操作对象为主,
例如:
for(i in 1:20){
cat(i);
cat(" ");
i=i+3;
}
运行结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
点评:我们可以看出,循环中处理的对象是1:20这20个数,对每个数进行操作不管循环内部i如何变化。因此,循环体内的i=i+3就不会对循环条件中的变量造成改变,具体执行过程相当于:
i=1 -> i=i+3,此时i=4;-> 第一次循环结束,第二次循环开始,i=2。
尤其注意,i变成4又变成2,所以打印出来的结果是,1,2,3,4....20的连续值。
如果想要随意的改变条件中的变量,请使用while循环
i=1
while(i<=20){
cat(i);
cat(" ");
i=i+3
}
运行结果:
1 4 7 10 13 16 19
(二)Matlab
matlab和R语言类似,以对象处理为主,体现出强大的智能性,因此对于语言的循环设计中以操作对象为主,
例如:
for i=1:20
i
i=i+3;
end
运行结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
点评:我们可以看出,循环中处理的对象是1:20这20个数,对每个数进行操作不管循环内部i如何变化。因此,循环体内的i=i+3就不会对循环条件中的变量造成改变,具体执行过程相当于:
i=1 -> i=i+3,此时i=4;-> 第一次循环结束,第二次循环开始,i=2。
尤其注意,i变成4又变成2,所以打印出来的结果是,1,2,3,4....20的连续值。
如果想要随意的改变条件中的变量,请使用while循环
i=1;
while i<=20
i
i=i+3;
end
运行结果:
1 4 7 10 13 16 19
(三)perl语言
perl语言和上面两种语言有所不同,对于循环条件中的变量和循环体中的变量是统一的,循环体中的变量变化会导致循环条件中的变量改变,
例如:
my $i;
for($i=1;$i<=20;$i++){
print"$i ";
$i=$i+3;
}
运行结果:
1 5 9 13 17
点评:运行过程相当于i=1->i=i+3,此时i=4; -> i++,此时i=5,然后开始第二次循环,因此打印的结果为1 5 9 13 17
再例如
my $i;
for($i=1;$i<=20;$i){
print"$i ";
$i=$i+3;
}
运行结果:
1 4 7 10 13 16 19
点评:运行过程相当于i=1->i=i+3,此时i=4; -> i变量不操作,此时i=4,然后开始第二次循环,因此打印的结果为1 4 7 10 13 16 19
可以比较一下上面两个例子,仔细体会,
同样也可以用while来实现:
my $i;
$i=1;
while($i<=20){
print"$i ";
$i=$i+3;
}
运行结果:
1 4 7 10 13 16 19
|