Hi Everyone,
I cannot figure out if there is an error in Julia or (more likely) in my
code. I have a matrix A, which contains some NaN values and I would like to
create a copy of it that is the same except that I replace the NaN values
with 0's. I would also like to do this without altering the original
matrix. I have tried two different approaches, both of which have the same
whacky result. Where no matter what I do, the original values seem to be
altered in A. My results would ideally look like:
a =[1 2 3; 4 5 NaN] and x=[1 2 3; 4 5 0]
Please let me know where my error is or if this is some oddity of julia's
handling of NaN's. The same logic of code works perfectly in Matlab, so I'm
really confused as to what the error is.
Thanks!!
*Method 1:*
a=[1 2 3; 4 5 NaN]
x=a
for m=1:size(x,1)
for l=1:size(x,2)
isnan(x[m,l]) ? x[m,l]=0 : x[m,l]=x[m,l]
end
end
Result:
julia> a
2x3 Array{Float64,2}:
1.0 2.0 3.0
4.0 5.0 0.0
julia> x
2x3 Array{Float64,2}:
1.0 2.0 3.0
4.0 5.0 0.0
*Method 2:*
julia> a=[1 2 3; 4 5 NaN]
2x3 Array{Float64,2}:
1.0 2.0 3.0
4.0 5.0 NaN
julia> x=a
2x3 Array{Float64,2}:
1.0 2.0 3.0
4.0 5.0 NaN
julia> x[isnan(x)]=0
0
julia> x
2x3 Array{Float64,2}:
1.0 2.0 3.0
4.0 5.0 0.0
julia> a
2x3 Array{Float64,2}:
1.0 2.0 3.0
4.0 5.0 0.0