12-13-2018 07:15 AM
こんにちは。
表題の件について質問させてください。
LabVIEWにおいて多次元配列(3次元以上)の次元を任意に入れ替える関数などはないのでしょうか?(調べてみるとMATLABではpermuteという関数がそれに当てはまりそうなのですが…)
例えば2次元配列であれば、transpose 2D array関数を用いれば、rowとcolumnの次元を容易に入れ替えることが可能だと思いますが、3次元配列の場合、どのようにすれば(複雑なプログラムを用いることなく)pageの次元をrowやcolumnの次元と入れ替えることができるのでしょうか。
ご教示の程、よろしくお願い致します。
解決済! 解決策の投稿を見る。
12-13-2018 05:59 PM
こちらでTCPlompが3次元配列についてサンプルを提示しています。
How to quickly transpose 3d array?
LabVIEWのビルドイン関数がない以上N次元配列の転置は、アルゴリズムの検討と開発が必須になるかと思います。
12-13-2018 07:18 PM
Emboar様
早速のご返信ありがとうございます。
ご提案頂いたページ、大変参考になりました。
やはり多次元配列の次元の組み換えはそれほど簡単ではなさそうですね。
参考ページを読んでいると、安易に多次元配列の次元を組み換えようと考えたこと自体が、間違えだと気が付きました。
というのも、forループの自動指標付けを使いたいがために次元の組み換えという問題にぶち当たったので、単にループ回数をマニュアルで指定してあげれば、問題は存外容易に解決されるということが分かりました。
12-13-2018 07:24 PM
12-13-2018 07:41 PM
連投すいません。
下記のようなプログラムで容易に次元の入れ替えを行うことができました。(MATLABのpermuteに相当?)
これは4D以上にも適用可能だと思います。