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