配列の操作

連番行列の作成

nx = 5
ny = 3
x = reshape(collect(1:nx*ny), (nx, ny))
5×3 Matrix{Int64}:
 1   6  11
 2   7  12
 3   8  13
 4   9  14
 5  10  15

配列にアクセスする順序

最も早い順序(メモリ上の順序)でアクセスする方法は、以下のように1ループでアクセスすれば良い。

for k = 1:nx*ny
    print(x[k],',')
end
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,

2重のforループで同じようにアクセスするには、以下の順番でfor文を書く。

for j = 1:ny
    for i = 1:nx
        print(x[i,j],',')
    end
end
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,

行列をフラット (ベクトル) にする

x_flatten = vec(x)
15-element Vector{Int64}:
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15

ベクトルを行列にする

x_ = reshape(x_flatten, (nx, ny))
5×3 Matrix{Int64}:
 1   6  11
 2   7  12
 3   8  13
 4   9  14
 5  10  15

転置

using LinearAlgebra
Transpose(x)
3×5 transpose(::Matrix{Int64}) with eltype Int64:
  1   2   3   4   5
  6   7   8   9  10
 11  12  13  14  15