C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■97945 / 親階層)  多次元配列の順序を入れ替える
□投稿者/ 鬼太郎 (1回)-(2021/08/10(Tue) 23:24:43)

分類:[.NET 全般] 

多次元配列を使ったプログラムをVB.NETで書いています。

https://www.wareko.jp/blog/acceleration-loop-technique-of-multidimensional-array-in-csharp


このサイトにあるように


        Dim X_Max As Integer, Y_Max As Integer, Z_Max As Integer

        Dim Array(X_Max, Y_Max, Z_Max) As Single

        For z = 1 To Z_Max

            For y = 1 To Y_Max

                For x = 1 To X_Max

                    Dim aa = Array(x, y, z)

                Next x

            Next y

        Next z


とアクセスするよりも


        Dim Array2(Z_Max, Y_Max, X_Max) As Single

        For z = 1 To 100

            For y = 1 To 100

                For x = 1 To 100

                    Dim aa = Array2(z, y, x)

                Next x

            Next y

        Next z


とアクセスした方が5倍程度高速化できます。

ただ、画像ファイルの場合には、


Dim img As New Bitmap(X_Max, Y_Max, PixelFormat.Format8bppIndexed)


のようにX→Yの順番になっており、

Dim Array2(Z_Max, Y_Max, X_Max) As Single
で配列を宣言するのは
使いづらいです。


上記サイトによるとFortranの場合には、
多次元配列の格納順が逆になっており
Dim Array(X_Max, Y_Max, Z_Max) As Single
の方が高速になるそうなのですが、

VBの場合でもFortranと同じように
多次元配列で格納される順番を変えることってできないのでしょうか?


編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
親記事 →Re[1]: 多次元配列の順序を入れ替える /WebSurfer
→(削除) /
 
上記関連ツリー

多次元配列の順序を入れ替える / 鬼太郎 (21/08/10(Tue) 23:24) #97945 ←Now
Re[1]: 多次元配列の順序を入れ替える / WebSurfer (21/08/11(Wed) 10:09) #97946
│└ Re[2]: 多次元配列の順序を入れ替える / 鬼太郎 (21/08/11(Wed) 11:09) #97948
(削除) / (21/09/17(Fri) 10:39) #98109
    ├ Re[3]: 多次元配列の順序を入れ替える / ニケ (21/08/11(Wed) 13:38) #97949
    └ Re[3]: 多次元配列の順序を入れ替える / WebSurfer (21/08/11(Wed) 13:53) #97950
      └ Re[4]: 多次元配列の順序を入れ替える / 鬼太郎 (21/08/11(Wed) 19:17) #97951
        ├ Re[5]: 多次元配列の順序を入れ替える / WebSurfer (21/08/11(Wed) 19:48) #97952
        ├ Re[5]: 多次元配列の順序を入れ替える / Hongliang (21/08/11(Wed) 20:52) #97954
        ├ Re[5]: 多次元配列の順序を入れ替える / 古谷 (21/08/11(Wed) 20:35) #97953
        └ Re[5]: 多次元配列の順序を入れ替える / WebSurfer (21/08/11(Wed) 21:14) #97955
          └ Re[6]: 多次元配列の順序を入れ替える / ニケ (21/08/13(Fri) 08:33) #97960

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信