bec*_*cko 7 multidimensional-array julia
我最初有一个空矩阵:
m = Matrix(0, 3)
Run Code Online (Sandbox Code Playgroud)
和我要添加的行:
v = [2,3]
Run Code Online (Sandbox Code Playgroud)
我试着这样做:
[m v]
Run Code Online (Sandbox Code Playgroud)
但是我收到了一个错误
ERROR: ArgumentError: number of rows of each array must match
Run Code Online (Sandbox Code Playgroud)
这样做的正确方法是什么?
那是因为你的矩阵大小不匹配.特别是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)")
Run Code Online (Sandbox Code Playgroud)
这样做
m = Matrix(0, 3)
v = [2 3 4]
m = cat(1, m, v) # or m = [m; v]
>> 1x3 Array{Any,2}:
>> 2 3 4
Run Code Online (Sandbox Code Playgroud)
如果再次运行它会创建另一行
m = cat(1, m, v) # or m = [m; v]
>> 2x3 Array{Any,2}:
>> 2 3 4
>> 2 3 4
Run Code Online (Sandbox Code Playgroud)
使用vcat(垂直连接)功能:
help?> vcat
search: vcat hvcat VecOrMat DenseVecOrMat StridedVecOrMat AbstractVecOrMat levicivita is_valid_char @vectorize_2arg
vcat(A...)
Concatenate along dimension 1
Run Code Online (Sandbox Code Playgroud)
注意您必须转置向量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
Run Code Online (Sandbox Code Playgroud)
注意:评论;# '只是为了使语法高亮工作正常。
| 归档时间: |
|
| 查看次数: |
10091 次 |
| 最近记录: |