[問題] 宣告的順序不同 答案也不同
看板Mathematica作者harry901 (forcing to A cup)時間13年前 (2011/11/24 13:46)推噓0(0推 0噓 0→)留言0則, 0人參與討論串1/2 (看更多)
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
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
Mathematica 近期熱門文章
PTT數位生活區 即時熱門文章