最初は空行列があります:
m = Matrix(0, 3)
そして私が追加したい行:
v = [2,3]
私はこれをやろうとします:
[m v]
しかし、エラーが発生します
ERROR: ArgumentError: number of rows of each array must match
これを行う適切な方法は何ですか?
これは、マトリックスのサイズが一致しないためです。具体的には、vにはmに一致するのに十分な列が含まれていません。そしてその転置
だからこれは機能しません
m = Matrix(0, 3)
v = [2,3]
m = cat(1, m, v) # or a = [m; v]
>> ERROR: DimensionMismatch("mismatch in dimension 2 (expected 3 got 1)")
これはしますが
m = Matrix(0, 3)
v = [2 3 4]
m = cat(1, m, v) # or m = [m; v]
>> 1x3 Array{Any,2}:
>> 2 3 4
もう一度実行すると、別の行が作成されます
m = cat(1, m, v) # or m = [m; v]
>> 2x3 Array{Any,2}:
>> 2 3 4
>> 2 3 4
vcat
(垂直方向に連結)関数を使用します。
help?> vcat
search: vcat hvcat VecOrMat DenseVecOrMat StridedVecOrMat AbstractVecOrMat levicivita is_valid_char @vectorize_2arg
vcat(A...)
Concatenate along dimension 1
ベクトルv
を転置する必要があることに注意してください。 v'
、そうでない場合はDimensionMismatch
エラーが発生します:
Julia> v = zeros(3)
3-element Array{Float64,1}:
0.0
0.0
0.0
Julia> m = ones(3, 3)
3x3 Array{Float64,2}:
1.0 1.0 1.0
1.0 1.0 1.0
1.0 1.0 1.0
Julia> vcat(m, v') # '
4x3 Array{Float64,2}:
1.0 1.0 1.0
1.0 1.0 1.0
1.0 1.0 1.0
0.0 0.0 0.0
Julia> v' # '
1x3 Array{Float64,2}:
0.0 0.0 0.0
Julia> vcat(m, v)
ERROR: DimensionMismatch("mismatch in dimension 2 (expected 3 got 1)")
in cat_t at abstractarray.jl:850
in vcat at abstractarray.jl:887
注:コメント; # '
シンタックスハイライトをうまく機能させるためだけにあります。
Matrix
はJuliaで2次元配列を作成しませんか? 1次元のVector
を作成するm = [0、3]を試してみると、[m; v]
で追加できます。
[m v]
を使用すると、Juliaドキュメントから2次元配列も作成されると思います。