# How to create a standalone \`JuMP.Containers.SparseAxisArray{Float64, n, Tuple{Int, ...}}\`?

**URL:** https://discourse.julialang.org/t/how-to-create-a-standalone-jump-containers-sparseaxisarray-float64-n-tuple-int/135253
**Category:** Optimization (Mathematical)
**Tags:** question, jump
**Created:** [January 25, 2026, 6:17am UTC](https://discourse.julialang.org/t/how-to-create-a-standalone-jump-containers-sparseaxisarray-float64-n-tuple-int/135253 "2026-01-25T06:17:39Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![WalterMadelim](https://avatars.discourse-cdn.com/v4/letter/w/3e96dc/32.png) [@WalterMadelim](https://discourse.julialang.org/u/WalterMadelim)
#### Post date: [January 25, 2026, 6:17am UTC](https://discourse.julialang.org/t/how-to-create-a-standalone-jump-containers-sparseaxisarray-float64-n-tuple-int/135253/1 "2026-01-25T06:17:39Z")

</div>

I’m interested in the `X` _per se_, as a container of a set of Float64 numbers (not depending on some JuMP variable `x` built beforehand).

```julia-auto
julia> import JuMP, Gurobi

julia> model = JuMP.direct_model(Gurobi.Optimizer());

julia> x = JuMP.@variable(model, [i = 1:3, j = i:3], lower_bound = i-j)
JuMP.Containers.SparseAxisArray{JuMP.VariableRef, 2, Tuple{Int64, Int64}} with 6 entries:
  [1, 1] = _[1]
  [1, 2] = _[2]
  [1, 3] = _[3]
  [2, 2] = _[4]
  [2, 3] = _[5]
  [3, 3] = _[6]

julia> JuMP.set_silent(model); JuMP.optimize!(model)

julia> X = JuMP.value.(x)
JuMP.Containers.SparseAxisArray{Float64, 2, Tuple{Int64, Int64}} with 6 entries:
  [1, 1] = 0.0
  [1, 2] = -1.0
  [1, 3] = -2.0
  [2, 2] = 0.0
  [2, 3] = -1.0
  [3, 3] = 0.0

```

I wonder how could I build such an object easily, e.g. via some syntax resembling `[i-j for i=1:3, j=i:3]`? Or I’m also okay with standard instatiating procedure such as

```julia-auto
X = Vector{Float64}(undef, 6) # instantiate
for i = 1:6 # fill in the entries with concrete numbers
   X[i] = rand()
end

```

---

<div class="post-metadata">

### Author: ![WalterMadelim](https://avatars.discourse-cdn.com/v4/letter/w/3e96dc/32.png) [@WalterMadelim](https://discourse.julialang.org/u/WalterMadelim)
#### Post date: [January 25, 2026, 6:32am UTC](https://discourse.julialang.org/t/how-to-create-a-standalone-jump-containers-sparseaxisarray-float64-n-tuple-int/135253/2 "2026-01-25T06:32:03Z")

</div>

Appears `Dict((i, j) => i-j for i=1:3 for j=i:3)` can do 😅  
I’m surprised

---

<div class="post-metadata">

### Author: ![odow](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/odow/32/28685_2.png) [@odow](https://discourse.julialang.org/u/odow)
#### Post date: [January 26, 2026, 12:02am UTC](https://discourse.julialang.org/t/how-to-create-a-standalone-jump-containers-sparseaxisarray-float64-n-tuple-int/135253/3 "2026-01-26T00:02:02Z")

</div>

See [Containers · JuMP](https://jump.dev/JuMP.jl/stable/manual/containers/#manual_sparse_axis_array)

```Julia
julia> using JuMP

julia> Containers.@container([i in 1:3, j in i:3], i - j)
JuMP.Containers.SparseAxisArray{Int64, 2, Tuple{Int64, Int64}} with 6 entries:
  [1, 1] = 0
  [1, 2] = -1
  [1, 3] = -2
  [2, 2] = 0
  [2, 3] = -1
  [3, 3] = 0

```
