2011-09-03 37 views
1

下面的代碼工作,但是當我用ListPlot3D替換ListPointPlot3D它不起作用!ListPlot3D不起作用,但ListPointPlot3D((Mathematica)

這工作:

ListPointPlot3D[Transpose[Table[{i,j, (150*(Sin[((i - 90)*2*3.14)/180]^2)* (Sin[((j - 45)*2*3.14)/180]^2)) - 150}, {i, 0, 270, 5}, {j, 0, 270, 5}]]] 

這不起作用:

ListPlot3D[Transpose[Table[{i,j, (150*(Sin[((i - 90)*2*3.14)/180]^2)* (Sin[((j - 45)*2*3.14)/180]^2)) - 150}, {i, 0, 270, 5}, {j, 0, 270, 5}]]] 

任何想法,爲什麼它不工作?

回答

6

您的數據:

In[1]:= Dimensions[ 
Transpose[ 
    Table[{i, 
    j, (150*(Sin[((i - 90)*2*3.14)/180]^2)*(Sin[((j - 45)*2*3.14)/ 
      180]^2)) - 150}, {i, 0, 270, 5}, {j, 0, 270, 5}]]] 

Out[1]= {55, 55, 3} 

ListPlot3D希望三元組的列表,以便Flatten 1級:

ListPlot3D[ 
Flatten[Transpose[ 
    Table[{i, 
    j, (150*(Sin[((i - 90)*2*3.14)/180]^2)*(Sin[((j - 45)*2*3.14)/ 
      180]^2)) - 150}, {i, 0, 270, 5}, {j, 0, 270, 5}]], 1]] 

移調因此多餘所以這將做到:

ListPlot3D[ 
Flatten[Table[{i, 
    j, (150*(Sin[((i - 90)*2*3.14)/180]^2)*(Sin[((j - 45)*2*3.14)/ 
      180]^2)) - 150}, {i, 0, 270, 5}, {j, 0, 270, 5}], 1]] 

同時,對於這個例子,Plot3D instea d:

Plot3D[(150*(Sin[((i - 90)*2*3.14)/180]^2)*(Sin[((j - 45)*2*3.14)/ 
     180]^2)) - 150, {i, 0, 270}, {j, 0, 270}] 
+0

我不關心倒數第二個例子中的語法。 「加入@@」會不會更加清晰? –

相關問題