Re: [問題] IF的know-how跟ListDensityPlot的定義

看板Mathematica作者 (薛丁格的貓)時間11年前 (2013/07/22 10:06), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《brahmsliu (薛丁格的貓)》之銘言: : 大家好,就跟標題一樣,我想請問if的一些使用問題: : 目前我有一個n*3的矩陣,裡面有元素含有If的條件式,而這些條件式又由變數f定義, : 我嘗試著將不同的f代入,好得到不同的矩陣以利接下來的處理。 : 但是我發現,如果利用 /. 是無法讓if的條件式啟動,output仍然會是If[blaaa] : 所以想請問大家,是否有些比較細節的if使用規則我沒有注意到? : 另外,我也想確認,對於一組{a,b,c}而言, : ListDensityPlot是否會自動將前兩個位置的"值",當成x,y坐標軸。 : 因為照內建的定義解釋,應該是會自動抓取值,不過有個範例又是抓"數據點"(第幾點) : 所以有點困惑。 : 謝謝啦!! 謝謝大家的幫忙,不過把code本身比打上來好像較好了解: 資料本身: a=Table[ {data1[[m,1]],data1[[m,2]]*f*data2[[m,2]]/data1[[m,2]](1-f)+data[[m,2]]}, {m,1,Dimensions[data1][[1]]] (斷掉是因為塞不進同一行,f是單純的變數) b=Table[ {data1[[m,1]],data1[[m,2]]f^2*data2[[m,2]]/data1[[m,2]]+data[[m,2]](1-f)}, {m,1,Dimensions[data1][[1]]] (斷掉是因為塞不進同一行,f是單純的變數) 條件式: Table[If[Re[a[[m,2]]]>0&&Re[b[[m,2]]]<0,3,If[Re[a[[m,2]]]<0&&Re[b[[m,2]]]>0,2, If[Re[a[[m,2]]]>0&&Re[b[[m,2]]]>0,1,0],{m,1,Dimensions[a[[1]]]}]]] ============================================================================= 基本上就是資料a跟b是兩組n*2的矩陣, 然後第二行是經由data1與data2運算得到的, 然後其中包含一個未定變數f (就是我上面問題的中的f) 接著針對利用Table把資料a,b的第二行的實數部分做分類,大於0,小於0等分成四個區塊 (我知道我寫了很亂的條件式,不好意思) 現在的問題就在於,我用/.f->數字 or //.f->數字,都無法帶入並觸動If的部分 (If[cond//Evaluate,true//Evaluate,false//Evaluate]也不行) Output的錯誤訊息是: Part::pspec: Part specification m is neither an integer nor a list of integers. 應該確定是Table內條件式的問題,但我一直很納悶為何f無法帶入,甚至指定 (f=1這樣) 所以想請問大家是否知道有什麼If與Table的know-how? 再次謝謝大家很熱心的幫忙!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 184.152.11.92
文章代碼(AID): #1Hx9F1md (Mathematica)
文章代碼(AID): #1Hx9F1md (Mathematica)