NI製品ディスカッション

cancel
Showing results for 
Search instead for 
Did you mean: 

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

Solved!
Go to solution
Highlighted

こんにちは。

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

 

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

 

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

 

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

0 Kudos
Message 1 of 5
(387 Views)
Solution
Accepted by topic author mitaka52
12-13-2018 05:43 PM

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

How to quickly transpose 3d array?

 

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

Emboar
Certified LabVIEW Developer
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
0 Kudos
Message 2 of 5
(366 Views)

Emboar様

 

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

 

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

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

 

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

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

0 Kudos
Message 3 of 5
(356 Views)

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

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

Emboar
Certified LabVIEW Developer
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
0 Kudos
Message 4 of 5
(352 Views)

連投すいません。

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

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

 

Message 5 of 5
(346 Views)