私は最初は空行列を持つ:ベクトルを行としてジュリア行列に追加する方法はありますか?
m = Matrix(0, 3)
と私は追加したい行:
v = [2,3]
私はこれを行うにしてみてください。
[m v]
をしかし、私はエラーを取得します
ERROR: ArgumentError: number of rows of each array must match
これを行う適切な方法は何ですか?あなたの行列の大きさが一致しないためである
私は最初は空行列を持つ:ベクトルを行としてジュリア行列に追加する方法はありますか?
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 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
(CONCATENATEを使用して別の行を作成するのに対し、そのので、このdoesntの仕事
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)")
を転置垂直方向)機能:
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
はジュリアの2次元配列を作成することはありませんか? 1次元のVector
を作成するm = [0、3]を試した場合は、[m; v]
で追加できます。
私は[m v]
を使用すると、ジュリア・ドキュメント
から、同様に2次元配列を作成する場合、またはあなたが 'V = [2,3,4]'フォーマットを維持したい場合は、使用して行を追加することができると思います'm = [m; v '] '。 – Rob