2012-05-06 20 views
-1

高校時代からデカルトグラフを扱っていないので、実生活に関係するものが実際に必要でした。それは奇妙な必要があるかもしれませんが、デカルトグラフ上の点にデータを割り当てる必要があります。デカルトグラフはデカルト座標を呼び出すことでアクセスできます。グラフには無限の点が必要です。例えばPythonを使ってデカルト座標を計算する

     ^
[-2-2,a ][ -1-2,f ][0-2,k ][1-2,p][2-2,u] 
[-2-1,b ][ -1-1,g ][0-1,l ][1-1,q][1-2,v] 
<[-2-0,c ][ -1-0,h ][0-0,m ][1-0,r][2-0,w]> 
[-2--1,d][-1--1,i ][0--1,n][1-1,s][2-1,x] 
[-2--2,e][-1--2,j ][0--2,o][1-2,t][2-2,y] 
         v 

実際の値は重要ではありません。しかし、私が変数mにいるとすれば、これはデカルトグラフ上で0-0となるでしょう。私が1つ上のスペースに移動した場合のデカルト座標を計算する必要があります。

理論的には、==( "0-1")というPython変数があるとします。これは、x = 0、y = 1のままにする - で分割する必要があると思います。それから、私は(int(y)+1)を実行してから、xをyに再接続する必要があり、間に ' - 'を付けます。

引数(x + 1、y + 0)で関数を呼び出し、プログラムが上記を実行して計算したデカルト座標を返します。

私は実際にデカルト座標だけのスペースの値を取得する必要はありません。私はre.sub()を利用することができると思いますが、この関数を ' - 'の周りで正しくフォーマットする方法がわかりませんし、正しく計算を実行する方法もわかりません。

どうすればよいですか?

+1

あなたは正確に何をしていますか?必要な説明があれば、回答者は混乱する可能性があります。 – Shep

答えて

1

私はこの問題を十分に理解していませんが、リストのリストを使用して2D構造を取得することをお勧めします。

coords[x-minX][y-minY]ここで、x、yは必要な整数のインデックスで、minXとminYは最小値です(例では-2)。

NumPyを参照すると、さらに柔軟性の高いn-dimオブジェクト配列タイプが提供され、各軸を 'スライス'または部分範囲にすることができます。 NumPyのマニュアルは、このような配列を操作するのが初めての場合に役立ちます。

EDIT:あなたが使用することができ、構成整数に0-1のような文字列を分割する :

s = '0-1' 
[int(x) for x in s.split('-')] 
+0

皆さん、ありがとうございました。私はこの回答者の分割機能を使って作業を進めることができました。ありがとうございました ! :) – abkai

2

無限ラティスを表現するには、タプル(x、y)を値にマッピングする辞書を使用します。

grid[(0,0)] = m 
grid[(0,1)] = l 

print(grid[(0,0)]) 
0

あなたは変数名と座標の間の双方向のマッピングを作成したい、あなたはで座標を調べることができますあなたの関数をそれに適用し、次にあなたの関数によって生成された新しい座標セットを使って次の変数を見つけます。

数値タプル間のマッピングでは、関数を適用することができます。また、dictやbackのキーとして使用できる文字列は簡単です。

関連する問題