Thanks!!! As a new comer to julia, I did not realize that they x=a linked 
them in a way that when I changed x, I was also changing a, thank you so 
much!

On Sunday, August 31, 2014 10:58:10 AM UTC-7, Keno Fischer wrote:
>
> Try x=copy(a). Matlab automatically copies the array if it's written to. 
>
> On Sun, Aug 31, 2014 at 1:52 PM, Alex Hollingsworth 
> <[email protected] <javascript:>> wrote: 
> > 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 
>

Reply via email to