как добавить комплексное число в массив?

первый раз глядя на Джулию

julia> x=[1 2 3];
julia> x[2]=3+5im

ERROR: InexactError()
 in convert at complex.jl:18
 in setindex! at array.jl:346

Я уверен, что это потому, что Джулия система ввода отличается.

Как это сделать ниже в Julia?

x=[1 2 3];
x(2)=3+5*1i

x =
   1.0000 + 0.0000i   3.0000 + 5.0000i   3.0000 + 0.0000i

2 ответов


можно сделать x сложный массив:

x=[1 2 3];
x=complex(x);

теперь вы можете выполнить эту операцию:

x[2]=3+5im;

в результате x содержит:

println(x)

вот результаты:

 1+0im 3+5im 3+0im

по желанию.


вы, вероятно, хотите, чтобы x был сложным. В этом случае вы можете сделать следующее:

x = Complex{Float64}[1, 2, 3]

что позволяет вам делать то, что вы хотите. Вы также можете изменить Float64 на что-то другое, например Int или Int64.

кроме того, вы должны поставить запятые после записей, чтобы получить 1-мерные массивы вместо 2-мерных массивов, которые являются вашими. Чтобы найти тип, сделайте это

typeof(x) 

что дает

1x3 Array{Complex{Float64},1}:
 1.0+0.0im  2.0+0.0im  3.0+0.0im

1 в конце указывает, что это 1-мерный массив.