wangmuyidong 发表于 2009-3-21 14:44:41

今天看书时看到,与大家分享一下

» for n=1:10
          x(n)=sin(n*pi/10);
          n=10;
       end

        当有一个等效的数组方法来解给定的问题时,应避免用For循环。例如,上面的第一个例子可被重写为

        » n=1:10;
        » x=sin(n*pi/10)
        x =
          Columns 1 through 7
          0.3090    0.5878    0.8090    0.9511    1.0000    0.9511    0.8090
          Columns 8 through 10
          0.5878    0.3090    0.0000

两种方法得出同样的结果,而后者执行更快,更直观,要求较少的输入。
    5. 为了得到最大的速度,在For循环(While循环)被执行之前,应预先分配数组。例如,前面所考虑的第一种情况,在For循环内每执行一次命令,变量x的大小增加1。迫使MATLAB每通过一次循环要花费时间对x分配更多的内存。为了消去这个步骤,For循环的例子应重写为

                        »x=zeros(1,10);    %preallocated memory for x
                        » for n=1:10
                              x(n)=sin(n*pi/10);
                       end

现在,只有x(n)的值需要改变。

瑞熙 发表于 2009-3-21 15:36:11

1# wangmuyidong


&raquo是什么?

marx 发表于 2009-3-25 21:32:40

::loveliness:: ::sad:: 您说的是什么啊 真的看不懂啊

aipiaoyi 发表于 2009-3-25 21:39:31

好专业啊,也没看明白

suhuil 发表于 2009-3-29 13:08:11

LZ要说明什么呢
页: [1]
查看完整版本: 今天看书时看到,与大家分享一下

招聘斑竹