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

作者: brahmsliu (薛丁格的貓)   2013-07-22 10:06:55
※ 引述《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?
再次謝謝大家很熱心的幫忙!!

Links booklink

Contact Us: admin [ a t ] ucptt.com