a[t_] = 5*t + 2; (*令函數a*)
b[t_] = a[t] + aa; (*令函數b*)
aaans = Array[ans, {6, 1}]; (*令空矩陣aaans*)
For[i = 1, i <= 6, i++, aa = i; (*迴圈*)
aaans[[i, 1]] = b[1]] (*將答案跑出來放入空矩陣*)
aaans (*印出來*)
執行後可得
{{8}, {9}, {10}, {11}, {12}, {13}}
=====================================
aaans = Array[ans, {6, 1}];
For[i = 1, i <= 6, i++,
b[t_] = a[t] + aa;
a[t_] = 5*t + 2;
aa = i;
aaans[[i, 1]] = b[1]]
aaans
執行後卻變成
{{8}, {8}, {9}, {10}, {11}, {12}}
我猜想大概跟系統內建參數初始直有關係
可是...現在實在頭昏腦脹 無法解釋上面兩個結果
==============================================================================
怎麼辦 實際上我的程式有兩百行 =__=~
尤其有很多復合函數 有些變數的宣告在For外面 有些在裡面
寫For迴圈的習慣要如何培養 才能避免上面的狀況出錯
尤其是需要連結到For外面的變數與函數時 >__<~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.134.252.177