デカルト空間での点の位置を表す、MATLAB にインポートする大量のデータがあります。標準の XYZ データを保存および処理するための最も一般的な方法は次のうちどれですか?
オプション1
X、Y、Z 座標を別々の n * 1 ベクトルとして保存します (おそらく構造内?)。これにより、次のようになります。
- 簡単なプロット:
plot3(X, Y, Z)
- 少し複雑な個々のポイントの抽出
N = [X(i), Y(i), Z(i)]
- ポイントのセット全体を関数に渡すと、渡すさまざまな引数の数が増えます。
オプション #2
X、Y、Z 座標を 1 つの n * 3 ベクトルとして保存します。
- プロットは少し難しいです:
plot3(XYZ(:, 1), XYZ(:, 2), XYZ(:, 3))
- 個々のポイントを抽出する方が簡単です。
N = XYZ(i, :)
- ポイントのセット全体を渡すのは簡単です - 変数は 1 つだけです
これに基づいて、私は 2 番目がより一般的であると思います。
ただし、処理するデータの一部は、グリッドの形式が重要なグリッド形式で読み込まれるため、より困難です。これは、データの生の形式が (n*m) * 3 行列ではなく、* m * 3 行列であることを意味します。点 X(i, j) が点 X(i, j+1) の隣にあるという事実は重要です。ここでも、2 つのオプションが提示されます。
オプション1
X、Y、Z の各座標を n * m 行列として保存します。
オプション #2
すべての点を n * m * 3 行列として格納します。
ここでは 2 番目の方法を使用したいと思いますが、プロットなどのいくつかのオプションは非常にばかげています。
X = XYZ(:, :, 1);
Y = XYZ(:, :, 2);
Z = XYZ(:, :, 3);
plot3(X(:), Y(:), Z(:));
特にビジョンとグラフィックスのコミュニティでは、これに関する規約が必要だと感じています。