1. for语句
  2. 格式:

1 for 循环变量=表达式1:表达式2:表达式3

2 循环体语句

3 end

4

5

6 表达式1:循环变量初值;表达式2:步长;表达式3:循环变量终值。



for 循环变量=矩阵表达式

循环体语句

end

循环变量分别等于矩阵各列元素,然后执行循环语句;

s=0;
a=[12,13,14;15,16,17;18,19,20;21,22,23];
for k=a
  s=s+k;
end

disp(s'); %s'以行输出
结果:39 48 57 66

disp(s)或s;
结果:
39
48
57
66

  1. 一个3位整数各位数字的立方和等于该数本身则称该数为水仙花数。输出100~999之间的全部。
  2. 1 for m=100:999 %步长省略则为1
    2     m1=fix(m/100);     %求m的百位数字;fix:向零方向取整;
    3     m2=rem(fix(m/10),10);     %求m的十位数字;rem:求余运算
    4     m3=rem(m,10);     %求m的个位数字
    5 if m==m1*m1*m1+m2*m2*m2+m3*m3*m3
    6     disp(m)    
    7     end
    8 end

    输出结果:153
    370
    371
    407
  3. 已知y=1/12+1/22+...1/n2,当n=100时,求y的值;
  4. y=0; 
    n=100;
    for i=1:n
        y=y+1/i/i;
    end
    y


    结果:y=1.6350

    快速算法:
    n=100;
    i=1:n;
    f=1./i.^2;%点运算,这里i形成的是一个向量,所以点运算
    y=sum(f)

     

  5. 设f(x)=e-0.5xsin(x+pi/6),求s=(0到3pi的积分)f(s)dx
  6. 以以梯形法算积分:
    a=0;
    b=3*pi;
    n=1000;
    h=(b-a)/n;
    x=a;s=0;
    f0=exp(-0.5*x)*sin(x+pi/6);
    for i=1:n
        x=x+h;
        f1=exp(-0.5*x)*sin(x+pi/6);
    s=s+(f0+f1)*h/2;
    f0=f1;
    end 
    s

    输出结果:


    s =

    
    

    0.9008

     

     

    快速算法(基于向量)

    a=0;
    b=3*pi;
    n=1000;
    h=(b-a)/n;
    x=a:h:b;
    f=exp(-0.5*x).*sin(x+pi/6);%f已经形成了一个向量;
    for i=1:n
    s(i)=(f(i)+f(i+1))*h/2;
    end
    s=sum(s)

    
    

     

posted on 2014-09-23 18:30  奶味洋葱头  阅读(3413)  评论(0编辑  收藏  举报