Greetings, part 2...
After doing some tests, I found that this code works just fine:
julia> using Distance
Warning: could not import Base.foldl into NumericExtensions
Warning: could not import Base.foldr into NumericExtensions
Warning: could not import Base.sum! into NumericExtensions
Warning: could not import Base.maximum! into NumericExtensions
Warning: could not import Base.minimum! into NumericExtensions
julia> xc = rand(8)'
1x8 Array{Float64,2}:
0.30107 0.479169 0.230607 0.65126 0.386921 0.455316 0.921496 0.244873
julia> yc = rand(8)'
1x8 Array{Float64,2}:
0.866199 0.767794 0.76163 0.262925 … 0.742765 0.980952 0.424966
julia> temp = [xc ; yc]
2x8 Array{Float64,2}:
0.30107 0.479169 0.230607 0.65126 … 0.455316 0.921496 0.244873
0.866199 0.767794 0.76163 0.262925 0.742765 0.980952 0.424966
julia> R = pairwise(Euclidean(),temp)
8x8 Array{Float64,2}:
0.0 0.203477 0.126094 0.697548 … 0.197554 0.630949 0.444797
0.203477 0.0 0.248638 0.533393 0.0345751 0.491009 0.415241
0.126094 0.248638 0.0 0.652423 0.225499 0.724865 0.336966
0.697548 0.533393 0.652423 0.0 0.518306 0.767196 0.437502
0.376201 0.283308 0.304834 0.355027 0.252287 0.719136 0.160613
0.197554 0.0345751 0.225499 0.518306 … 0.0 0.523505 0.381159
0.630949 0.491009 0.724865 0.767196 0.523505 0.0 0.87575
0.444797 0.415241 0.336966 0.437502 0.381159 0.87575 0.0
As expected, the diagonal elements are 0 and everything seems to work fine
although I did not test other distance formulas.
I'm posing this so others can see the results and possibly make use of this
themselves.
Is there a central repository for user submitted solutions or examples? If
so I'd like to post this so others can see or alternatively someone else is
free to use this (and the original code I posted) for future reference.
Thank you all again for your help! I'm going to be coding some models this
summer and will probably be back to bug everyone again.
Thanks,
Don
On Wednesday, July 2, 2014 10:22:58 AM UTC-4, Donald Lacombe wrote:
>
> Greetings!
>
> I am a new Julia user and have the following issue. I am writing code to
> calculate a knn spatial weight matrix to estimate a spatial econometric
> model. Using the MATLAB code from Jim LeSage's Econometrics Toolbox, I
> converted that code into Julia as follows:
>
> xc = rand(8);
>
> yc = rand(8);
>
> n = length(xc);
>
> k = 2;
>
> distance = zeros(n);
>
> nnlist = zeros(n,k);
>
> tempw = zeros(n,n);
>
>
> for i=1:n;
>
> xi = xc[i,1];
>
> yi = yc[i,1];
>
> distance = (xc - xi*ones(n)).^2 + (yc - yi*ones(n)).^2
>
> temp = sortperm(distance)
>
> nnlist[i,1:k] = temp[2:k+1,1]';
>
> end
>
>
> for i=1:n
>
> tempw[i,nnlist[i,:]] = 1;
>
> end
>
>
> W = tempw/k;
>
>
> This is a "toy" example and I was wondering if I can use the Distance package
> to simplify the distance = (xc - xi*ones(n)).^2 + (yc - yi*ones(n)).^2
> formula. I tried using the pairwise option like so:
>
>
> R = pairwise(Euclidean(),xc,yc) but received the following message:
>
>
> R = pairwise(Euclidean(),xc,yc)
>
> MethodError(pairwise,(Euclidean(),[0.05961066617957589,0.018538084399339905,0.39282193332224646,0.7006919213133509,0.5099836895629475,0.8448415935222402,0.2985674570217043,0.8022287058003177],[0.5808687231553928,0.9655167324458858,0.026306556019434435,0.6565373244339141,0.11927452074471412,0.11873635450496622,0.6271632933770979,0.7081439899673692]))
>
> I'd like to be able to utilize the Distance package but am a bit stumped. The
> code as written works but it's bugging me that I cannot seem to get the above
> command to work. I also get the following error when loading Distance:
>
>
> using Distance
>
> Warning: could not import Base.foldl into NumericExtensions
>
> Warning: could not import Base.foldr into NumericExtensions
>
> Warning: could not import Base.sum! into NumericExtensions
>
> Warning: could not import Base.maximum! into NumericExtensions
>
> Warning: could not import Base.minimum! into NumericExtensions
>
>
> If there is anyone who can address this I'd greatly appreciate it.
> Incidentally, the help on this group is one reason I am making the change.
>
>
> Don
>
>
>
>
>