Re: [問題] kernel,dde,提醒,複製code等問題

看板Mathematica作者 (-858993460)時間13年前 (2011/10/26 12:49), 編輯推噓4(400)
留言4則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《harry901 (forcing to A cup)》之銘言: : 1. Kernel的主要功能是做什麼用? 存放mathematica所有參數變數的記憶而已嗎? : 同樣的Cell的功能是做什麼用呢? 每一個Cell是對應到同一個kernel嗎? : 會這樣問主要是因為我的程式有 : 在同一個Cell裡面有 雙迴圈loopA 與雙迴圈loopB : 使用同一個迴圈參數(i,j)與計算參數k k受到i,j而變化 : loop a跑完會產生A loop b跑完會產生B : 第一次run, 產生的數據都是正確的 : 但是第二次run 只有A正確 : B的答案都是不正確(事後查到其計算參數k在loop b都是固定的) : 而將上面的loop a,b 分兩個Cell做 也是一樣的問題存在 : 最後 只要清除Kernel 再run一次就沒問題了 : 這使得我每次都要quit kernel.... : 雖然我可以在程式最後加 Quit[] 不過Quit[]前面是一個顯示"結果矩陣"的命令 : 就會變成無法顯示"結果矩陣"(我猜應該是碰到Quit[] 來不及顯示) 也許你這個問題需要的是 Block 讓 k 在 Block[] 的範圍裡是區域變數 離開 Block[] 之後就清掉了 它的用法是 Block[{k}, 你的式子] 這樣在後面的式子計算過程中 k 就是區域變數 它在裡面時值的改變不會影響到外面的變數值 (其實當你使用迴圈時 迴圈變數在內部就是使用 Block 和外部做區隔 實際上 Block 的動作是記住這變數原本內容之後清掉 離開 Block 時再設回去這樣) 回到你的 kernel 問題 你猜的其實八九不離十 同一個 kernel 會記錄從開它開始到目前所有在它上面的計算 (包含結果和變數等) 而 cell 只是在前端分格用的格子而已 只要後端還是在同一個 kernel 上 變數或結果什麼的就都會繼承 Quit[] 可以翻前幾篇文有講到 基本上它就是把現在這個 kernel 給結束掉 在那之後執行的東西就會新起一個 kernel 因此這兩個式子才會是不同的 kernel 執行 : 2. 要將mathematica的code複製貼上來 : 發現他無法依照純文字的方式複製貼上(即使code全部都是純文字) : 試過利用copy as->所有選項 都一樣的狀況 有辦法解決嗎? : 這應該是編譯的問題 是不是需要轉譯呢? 其實這還滿常發生的... 除了輸入的式子可能並不適合純文字表示 (例如數學記號) 之外 Mathematica 還會幫你做斷行縮排 所以有時一段程式複製貼上之後會發現被斷得亂七八糟就是這樣... 我自己是會手動排版就是了 orz : 3. 如果我想要在程式執行過程中 若發生問題而出現提醒視窗或警告之類的方式 : 我試著用Message[]這類的東西卻沒辦法做出來 有其他的語法可以幫忙嗎? : 例如: If[a>b, Messages[救命阿~出錯了],] : 上面的例子 如果不成立 希望不要顯示出來 結果出現{}空集合 : 如果成立 動都沒動 = = 因為 Message/Messages 不是用來顯示警告對話框的... 那個是 MessageDialog 在做的 另外如果希望不要顯示出來可以讓它產生 Null 做結果 於是你要的可能如下 If[a>b, MessageDialog["出事啦!"];, Null] 然後 If 如果不給第三個參數預設就是 Null 所以就也別打那個逗號了 直接寫成 If[a>b, MessageDialog["出事啦!"];] 這樣就行了 (加個分號是不要讓它顯示所產生出來的 NotebookObject ) : 4. 有辦法連到dde(動態資料)做即時運算嗎? : 比方說連到網頁 讀取股價資料做即時運算 有相關的用法嗎? 讀取動態外部資料的部份我不太熟...可能要請其他板友支援一下了 XD -- 実琴:「河野!你真的就這樣被物質慾望給吸引過去了嗎?!」 亨:「只要穿著女裝擺出親切的樣子,所有必要花費就能全免,似乎一點都不壞啊。」 実琴:「難道你沒有男人的尊嚴了嗎?!」 亨:(斷然道)「沒有。在節衣縮食生活吃緊學生面前,沒有那種東西。」 --プリンセス・プリンセス 第二話 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.28.92 ※ 編輯: LPH66 來自: 140.112.28.92 (10/26 12:51)

10/26 13:34, , 1F
感恩熱心回答
10/26 13:34, 1F

10/28 21:57, , 2F
抱歉我後來發現我標題打錯了 有空請幫忙更正 感恩
10/28 21:57, 2F

10/28 23:01, , 3F
已更正^^
10/28 23:01, 3F

11/01 12:58, , 4F
那個複製貼上的問題 新版本就沒有問題了 更新之後都ok
11/01 12:58, 4F
文章代碼(AID): #1Efv4-p_ (Mathematica)
文章代碼(AID): #1Efv4-p_ (Mathematica)