作者jeffppp (煩..)
看板MATLAB
標題Re: [問題] 迴圈
時間Fri Nov 16 17:46:39 2012
※ 引述《james1022jk (雁)》之銘言:
: ※ 引述《icrtstyle (嘿嘿)》之銘言:
: : 我想請問一下,要怎麼把以下3個迴圈合併在一起????
: : ----------
: : for i=1:n;
: : t=1;
: : x(i,t+1)=x(i,t)+g(i,t);
: : for j=1:n;
: : x(i,t+1)=x(i,t+1)+e*aa(i,j)*x(j,t+1);
: : end
: : end
: : for i=1:n;
: : t=2;
: : x(i,t+1)=x(i,t)+g(i,t);
: : for j=1:n;
: : x(i,t+1)=x(i,t+1)+e*aa(i,j)*x(j,t+1)+e*(exp(-1))*aa(i,j)*(x(j,t-1)+g(j,t-1));
: : end
: : end
: : for i=1:n;
: : t=3;
: : x(i,t+1)=x(i,t)+g(i,t);
: : for j=1:n;
: : x(i,t+1)=x(i,t+1)+e*aa(i,j)*x(j,t+1)+e*(exp(-1))*aa(i,j)*(x(j,t-1)+g(j,t-1))+
: : e*(exp(-2))*aa(i,j)*(x(j,t-2)+g(j,t-2));
: : end
: : end
: : -----------------------------
: for t = 1:3
: for i = 1:n
: x(i,t+1) = x(i,t)+g(i,t);
: for j = 1:n
: switch t
: case 1
: x(i,t+1)=x(i,t+1)+e*aa(i,j)*x(j,t+1);
: case 2
: x(i,t+1)=x(i,t+1)+e*aa(i,j)*x(j,t+1)+...
: e*(exp(-1))*aa(i,j)*(x(j,t-1)+g(j,t-1));
: case 3
: x(i,t+1)=x(i,t+1)+e*aa(i,j)*x(j,t+1)+...
: e*(exp(-1))*aa(i,j)*(x(j,t-1)+g(j,t-1))+...
: e*(exp(-2))*aa(i,j)*(x(j,t-2)+g(j,t-2));
: end
: end
: end
: end
: 我果然是太無聊..........................................................
for i=1:n;
for t=1:100
x(i,t+1)=x(i,t)+g(i,t);
for j=1:n;
temp=x(i,t+1);
for k=1:t
if k==1
temp=temp+x(i,t+1)+e*aa(i,j)*x(j,t+1);
else
temp=temp+e*(exp(1-k))*aa(i,j)*(x(j,t+(1-k))+g(j,t+(1-k)))
end
end
x(i,t+1)=temp;
end
end
end
不確定對不對 XDD
太多層了
可以把100 帶小一點的數字試試看
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.25.95.251
推 icrtstyle:太感謝!!!幾乎都是對的,只有一個小小的瑕疵而已~~~ 11/17 02:05
→ icrtstyle:就是..temp=temp+x(i,t+1)+e*aa(i,j)*x(j,t+1);這行 11/17 02:06
→ icrtstyle:要改成..temp=temp+e*aa(i,j)*x(j,t+1);就這一點點問題 11/17 02:07
→ icrtstyle:感謝你讓我學到這種修改迴圈方式~~~^^ 11/17 02:08