NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

多次元配列の次元の再配列について

解決済み
解決策を見る

こんにちは。

表題の件について質問させてください。

 

LabVIEWにおいて多次元配列(3次元以上)の次元を任意に入れ替える関数などはないのでしょうか?(調べてみるとMATLABではpermuteという関数がそれに当てはまりそうなのですが…)

 

例えば2次元配列であれば、transpose 2D array関数を用いれば、rowとcolumnの次元を容易に入れ替えることが可能だと思いますが、3次元配列の場合、どのようにすれば(複雑なプログラムを用いることなく)pageの次元をrowやcolumnの次元と入れ替えることができるのでしょうか。

 

ご教示の程、よろしくお願い致します。

0 件の賞賛
メッセージ1/5
2,837件の閲覧回数
解決策
トピック作成者mitaka52が受理

こちらでTCPlompが3次元配列についてサンプルを提示しています。

How to quickly transpose 3d array?

 

LabVIEWのビルドイン関数がない以上N次元配列の転置は、アルゴリズムの検討と開発が必須になるかと思います。

Certified LabVIEW Developer
There are only two ways to tell somebody thanks: Kudos and Marked Solutions

GCentral
0 件の賞賛
メッセージ2/5
2,816件の閲覧回数

Emboar様

 

早速のご返信ありがとうございます。

 

ご提案頂いたページ、大変参考になりました。

やはり多次元配列の次元の組み換えはそれほど簡単ではなさそうですね。

 

参考ページを読んでいると、安易に多次元配列の次元を組み換えようと考えたこと自体が、間違えだと気が付きました。

というのも、forループの自動指標付けを使いたいがために次元の組み換えという問題にぶち当たったので、単にループ回数をマニュアルで指定してあげれば、問題は存外容易に解決されるということが分かりました。

0 件の賞賛
メッセージ3/5
2,806件の閲覧回数

お役にたったようでよかったです。

解決策に至った投稿へは、解決策へのマークをお願いします。

Certified LabVIEW Developer
There are only two ways to tell somebody thanks: Kudos and Marked Solutions

GCentral
0 件の賞賛
メッセージ4/5
2,802件の閲覧回数

連投すいません。

下記のようなプログラムで容易に次元の入れ替えを行うことができました。(MATLABのpermuteに相当?)

これは4D以上にも適用可能だと思います。Relocate array.png

 

メッセージ5/5
2,796件の閲覧回数