🔖
Julia言語の行列における値取得方法について
beginとend、線形インデックス、範囲指定、フィルタリングについて調べました。
やってみた
module Matrix
using Test
function main()
@testset "beginとendについて" begin
matrix = [
1 2 3
4 5 6
7 8 9
]
# 添字は、1から始まる。
@test matrix[1, 1] == 1
@test matrix[begin, begin] == 1
@test matrix[3, 3] == 9
@test matrix[end, end] == 9
end
@testset "線形インデックスについて" begin
matrix = [
1 2
3 4
5 6
]
# 多次元配列は、列指向である。
@test matrix[1] == 1
@test matrix[2] == 3
@test matrix[3] == 5
@test matrix[4] == 2
@test matrix[5] == 4
@test matrix[6] == 6
end
@testset "範囲指定について" begin
matrix = [
1 2 3
4 5 6
7 8 9
]
@test matrix[1:2, 1] == [1, 4]
@test matrix[:, 1] == [1, 4, 7]
@test matrix[1, 1:2] == [1, 2]
@test matrix[1, :] == [1, 2, 3]
@test matrix[1:2, 1:2] == [1 2; 4 5]
end
@testset "フィルタリングについて" begin
matrix = [
1 2 3
4 5 6
7 8 9
]
# 値は、線形インデックスの順番で返される。
@test matrix[matrix.<5] == [1, 4, 2, 3]
@test matrix[matrix.>5] == [7, 8, 6, 9]
end
end
end
if abspath(PROGRAM_FILE) == @__FILE__
using .Matrix
Matrix.main()
end
Discussion