guoguolisa 发表于 2006-10-19 17:50

想用循环代替一下

我写的小程序,可是不知道应该用什么循环与就能代替一下,要不这么算有点太傻了。因为这是向量运算,所以它不让写成y(;,i)形式,给看看吧,谢谢了
k=;
m=;
format long
x1=;
yk=m*x1
lx=inv(k)*yk
ly=m*lx
ykp1=ly/(lx'*ly)^0.5
r1=lx'*yk/(lx'*ly)
%
yk=ykp1
lx=inv(k)*yk
ly=m*lx
ykp1=ly/(lx'*ly)^0.5
r2=lx'*yk/(lx'*ly)
%
yk=ykp1
lx=inv(k)*yk
ly=m*lx
ykp1=ly/(lx'*ly)^0.5
r3=lx'*yk/(lx'*ly)

guoguolisa 发表于 2006-10-19 17:51

其实就是将上一个算完的值带入下一次运算。

心灯 发表于 2006-10-19 19:17

k=;
m=;
format long;
x1=;
%yk=m*x1;
ykp1=m*x1;
for ii=1:3
    yk = ykp1;
    lx=inv(k)*yk;
    ly=m*lx;
    ykp1=ly/(lx'*ly)^0.5;
    rr=lx'*yk/(lx'*ly);
    eval(['r' num2str(ii) '=rr']);
end

心灯 发表于 2006-10-19 19:20

另外,类似你这种形式,如果次数不算很多,可以不用循环,把上面我的代码里循环体部分用一个function fun1代替,然后r1=fun1(function需要的各个参数列表),r2=fun1(function需要的各个参数列表),就可以了。如果很多,最好是用我上面给出的循环的形式。

guoguolisa 发表于 2006-10-19 19:50

谢谢了 我逐个方法试一试 太感谢了!
页: [1]
查看完整版本: 想用循环代替一下