# Dimension problem for variable multiplication in ModelingToolkit.jl

**URL:** <https://discourse.julialang.org/t/dimension-problem-for-variable-multiplication-in-modelingtoolkit-jl/69479>\
**Category:** Modelling & Simulations\
**Tags:** modelingtoolkit\
**Created:** [October 9, 2021, 6:18pm UTC](https://discourse.julialang.org/t/dimension-problem-for-variable-multiplication-in-modelingtoolkit-jl/69479 "2021-10-09T18:18:03Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![PikaPei](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pikapei/32/16872_2.png) [@PikaPei](https://discourse.julialang.org/u/PikaPei)\
**Post date:** [October 9, 2021, 6:18pm UTC](https://discourse.julialang.org/t/dimension-problem-for-variable-multiplication-in-modelingtoolkit-jl/69479/1 "2021-10-09T18:18:03Z")

</div>

This is what I did:

```julia
using ModelingToolkit
@parameters t
@variables a(t) b(t) c[1:2](t)

# then calculate:
(c' * [a, b]) * c

```

I think `(c' * [a, b])` can be a scalar, so the dimension is correct.

```julia
julia> size(c' * [a, b])
()

julia> size(c)
(2,)

```

But it raised an error:

```julia
ERROR: MethodError: no method matching iterate(::Term{Num, Nothing})
Closest candidates are:
  iterate(::Union{LinRange, StepRangeLen}) at range.jl:664
  iterate(::Union{LinRange, StepRangeLen}, ::Int64) at range.jl:664
  iterate(::T) where T<:Union{Base.KeySet{var"#s77", var"#s76"} where {var"#s77", var"#s76"<:Dict}, Base.ValueIterator{var"#s75"} where var"#s75"<:Dict} at dict.jl:693
  ...
Stacktrace:
  [1] copyto!(dest::Vector{Any}, src::Term{Num, Nothing})
    @ Base ./abstractarray.jl:843
  [2] _collect(cont::UnitRange{Int64}, itr::Term{Num, Nothing}, #unused#::Base.HasEltype, isz::Base.HasLength)
    @ Base ./array.jl:608
  [3] collect
    @ ./array.jl:602 [inlined]
  [4] broadcastable
    @ ./broadcast.jl:682 [inlined]
  [5] broadcasted
    @ ./broadcast.jl:1312 [inlined]
  [6] broadcast(::typeof(*), ::Term{Num, Nothing}, ::Symbolics.ArrayOp{AbstractVector{Real}})
    @ Base.Broadcast ./broadcast.jl:821
  [7] materialize(bc::Base.Broadcast.Broadcasted{Symbolics.SymWrapBroadcast, Nothing, typeof(*), Tuple{Num, Symbolics.Arr{Num, 1}}})
    @ Symbolics ~/.julia/packages/Symbolics/mFWWM/src/array-lib.jl:169
  [8] broadcast_preserving_zero_d
    @ ./broadcast.jl:872 [inlined]
  [9] *(A::Num, B::Symbolics.Arr{Num, 1})
    @ Base ./arraymath.jl:52
 [10] top-level scope
    @ REPL[39]:1

```

I’m not sure whether I did something wrong, hope someone can help me.

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [October 10, 2021, 11:13am UTC](https://discourse.julialang.org/t/dimension-problem-for-variable-multiplication-in-modelingtoolkit-jl/69479/2 "2021-10-10T11:13:47Z")

</div>

Open an issue.

---

<div class="post-metadata">

**Author:** ![PikaPei](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pikapei/32/16872_2.png) [@PikaPei](https://discourse.julialang.org/u/PikaPei)\
**Post date:** [October 10, 2021, 12:11pm UTC](https://discourse.julialang.org/t/dimension-problem-for-variable-multiplication-in-modelingtoolkit-jl/69479/3 "2021-10-10T12:11:21Z")

</div>

OK, thanks for the reminder!
