前提・実現したいこと
pythonでクラスを2重で格納した配列を作成したいです。
pythonでの記述方法がわからないのでC++で実現したいコードを書きました。
ご教示いただければ幸いです。
よろしくおねがいします。
試しに書いたPythonのコード
Python
1import numpy as np 2 3class Vector3D: 4 x = 0 5 y = 0 6 z = 0 7 8class PointCloud: 9 pc = Vector3D() 10 11pc1 = PointCloud() 12pc2 = PointCloud() 13pc3 = PointCloud() 14pc4 = PointCloud() 15 16pc_arr = [pc1,pc2,pc3,pc4] 17
クラスのPointCloud内のpcは2次元配列で各要素にクラスVector3Dを持つようにしたいです。
Pythonで実現したいC++のコード
C++
1#include<iostream> 2#include<vector> 3 4class Vector3D{//三次元ベクトルクラスを作成 5public: 6 float X; 7 float Y; 8 float Z; 9}; 10 11class PointCloud{//三次元ベクトルを各要素に持つ2次元配列クラスを作成 12public: 13 std::vector<std::vector<Vector3D> > pc; 14}; 15 16std::vector<PointCloud> arr_pc(4); //クラスPointCloudを配列で定義 17 18int main(int argc, char const *argv[]) 19{ 20 arr_pc[0].pc.resize(2,std::vector<Vector3D>(3)); //arr_pc[0].pcを2✕3でリサイズ 21 arr_pc[0].pc[1][2].X = 100.0; //要素に値を代入 22 23 std::cout << arr_pc[0].pc[1][2].X << std::endl; 24 25 return 0; 26} 27 28 29
> pythonでの記述方法がわからないのでC++で実現したいコードを書きました
pythonはどの程度知っていますか?
pythonの基本構文は知っています。
普段はROSでpythonを使用しています。
今の質問ですとC++のコードをpythonで書いてほしいとの丸投げの印象です。途中まででも良いのでpythonコードを追記いただけませんか?
あまりに丸投げな質問の仕方でした。
申し訳ございません。
汚いコードですが書いてみました。
PointCloudクラスを配列で定義できていないのと、
(クラスPointCloudは2次元配列で要素にクラスVector3Dを持つものを作りたいです)
要素へのアクセス方法、
がわからない状況です。
重ね重ね申し訳ございません。
```
import numpy as np
class Vector3D:
x = 0
y = 0
z = 0
class PointCloud:
pc = Vector3D()
pc1 = PointCloud()
pc2 = PointCloud()
pc3 = PointCloud()
pc4 = PointCloud()
pc_arr = [pc1,pc2,pc3,pc4]
```
質問は編集出来ますのでコードは質問に追記しましょう。
ちなみに上記コードでnumpyをインポートしていますが使用していません。numpyの使い方が分からないというのが質問でしょうか?
わかりました、ご指摘ありがとうございます。
はい、numpyのndarrayで定義したいです
回答2件
あなたの回答
tips
プレビュー