As part of my NLP project, I need a way to plot 2D & 3D point cluster plots.
Let's take the example in my previous email:

     (0 0, 2 _3 ,: _1 2) dis 1 1,_1 _2,:3 4

1.41421 3.16228 4.47214

In that distance calculation, their are 6 coordinate pairs, representing 6
points in x & y.
The six points are:

 0 0, 2 _3, _1 2, 1 1,_1 _2, 3 4

I want to see a plot of those 6 points.

1. How do I make a 2D plot that shows these 6 points as small dots on an xy
graph.
2. How can I make the first three points red dots, and the last three
points blue dots?
3. Now assume I have 6 more points, but they are in three dimensions:

0 0 0, 2 _3 1, _1 2 0, 1 1 1,_1 _2 3, 3 4  2

4. How do I make a 3D plot that shows these 6 points as small dots in a 3D
xyz perspective view graph
5. How do I rotate the view?
6. How can I make the first three points red dots, and the last three
points blue dots?

​Skip

​<<<>>>​


On Fri, Oct 27, 2017 at 9:48 PM, Skip Cave <s...@caveconsulting.com> wrote:

> Raul,
>
> Yes, rank was the problem. It hit me while I was eating dinner
> but your solution was different than what I expected (they usually are):
>
> Raul:
>
>      dis =.4 :'%:+/*:x-y' "1
>
>      (0 0, 2 _3 ,: _1 2) dis 1 1,_1 _2,:3 4
>
> 1.41421 3.16228 4.47214
>
>
>        0 0 dis 1 1,_1 _2,:3 4
>
> 1.41421 2.23607 5
>
>
> I need to study this more. My solution was:
>
>      dis =. 4 :'%:+/"1 *:x-y'
>
>
>      (0 0, 2 _3 ,: _1 2) dis 1 1,_1 _2,:3 4
>
> 1.41421 3.16228 4.47214
>
>
>      0 0 dis 1 1,_1 _2,:3 4
>
> |length error: dis
>
> |     %:+/"1*:x -y
>
>
> So my scheme doesn't work for one-to-many. It just works on one-to-one
>
> & many-to-many (both nouns must be the same size).
>
> I had no idea you could put the rank operator outside the quotes!
>
> Where does the language description doc discuss this trick?
>
>
> Skip
>
> Skip Cave
> Cave Consulting LLC
>
> On Fri, Oct 27, 2017 at 7:03 PM, Raul Miller <rauldmil...@gmail.com>
> wrote:
>
>> The items that dis is expecting are rank 1 vectors. So it might make
>> sense to include a rank 1 specification in its definition:
>>
>>    dis =: 4 :'%:+/*:x-y'"1
>>
>> Does that work for this example?
>>
>>    0 0 dis 1 1,_1 _2,:3 4
>> 1.41421 2.23607 5
>>
>> ... seems so ...
>>
>> Thanks,
>>
>> --
>> Raul
>>
>>
>> On Fri, Oct 27, 2017 at 7:11 PM, 'Skip Cave' via Programming
>> <programm...@jsoftware.com> wrote:
>> > In the 2014-11-11 NYCJUG meeting
>> > <http://code.jsoftware.com/wiki/NYCJUG/2014-11-11> there was a
>> discussion
>> > on Euclidean Distance. The verb 'dis' was used to demonstrate how to to
>> > calculate the Euclidean distance between two vectors.
>> >
>> > 0 0 dis 1 1 NB. Euclidean distance 1.41421 1 1,_1 _2,:3 4 NB. Table of
>> 2-D
>> > points 1 1 _1 _2 3 4 0 0 dis 1 1,_1 _2,:3 4 NB. Distances from origin
>> > 1.41421 2.23607 5 0 0 0 dis 1 1 1 NB. Handles higher dimensions 1.73205
>> > I have a NLP project that needs to calculate the
>> > Euclidean distance between points in a multi-dimensional
>> > space. I now the basic formula - square the differences,
>> > sum the squares, take the square root of the sum:
>> >
>> >    dis =. 4 :'%:+/*:x-y'
>> >
>> >    0 0 dis 1 1
>> >
>> > 1.41421
>> >      0 0 0 dis 1 1 1
>> >
>> > 1.73205
>> >
>> > Looking good....
>> >
>> >    0 0 dis 1 1,_1 _2,:3 4
>> >
>> > |length error: dis
>> >
>> > | %:+/*:x -y
>> >
>> > Ooops!
>> >
>> > How can I make dis handle multiple pairs of vectors?
>> >
>> > like:
>> >
>> >   (0 0, 2 _3 ,: _1 2) dis 1 1,_1 _2,:3 4
>> >
>> > 1.41421  3.16228  4.47214
>> >
>> > Skip Cave
>> > Cave Consulting LLC
>> > ----------------------------------------------------------------------
>> > For information about J forums see http://www.jsoftware.com/forums.htm
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>
>
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to