Hi Piet,

> Slicing is a pretty intuitive concept so why should it be so intricate
and “hard"?
> Maybe this is one of the reasons why J is not as popular as it ought to
be.

In the defence of J we might consider that the intuition of slicing is a
bit ambiguous, which is the dangerous sort.

The mental model of a 3d array for some might be a booklet of printed pages
on the desk in front of them. Indexing would be along [pages, lines,
columns], with the origin at the top-far-left corner. However, others might
have put the pages on the desk one by one and have page 0 at the bottom.

I don't know about your application, but extra sympathy should go out to
those who think about 3D in terms of x,y,z. The intuitive [page, line,
column] correspond to their z, y and x, in that order. Moreover, x
increases left to right, like column, but y goes opposite to line, and z
opposite to page - the latter for some but not for others.

Personally I have been working long and hard on the representation of 3D
geographic scenes as 3d voxel arrays, and (hopefully) just before getting
completely crazy from the above I decided to call my 3D-array indices
[X,Y,Z] and stick to it.

It helped; I regard my models as collections of vertical columns (the z
dimension), spread over the (x,y) space, and I think that is perfectly
intuitive. However, now I have verbs called Top, Front and Side, I think
similar to what Piet was asking for, that generate 2D views and
cross-sections of 3D voxel models ("viewmat Top scene", "viewmat Front
building" etc.). What happens inside those is still a bit weird.

Greetings,
Ben


On Fri, 8 Sept 2023 at 07:10, Piet de Jong <pietd...@gmail.com> wrote:

> Thanks for all the great suggestions which has helped me a lot.
>
> To my mind it does raise a couple of issues or questions.
>
> I’ll stick my head out with them, knowing there might be much blowback.
> But bear with me.
>
> Slicing is a pretty intuitive concept so why should it be so intricate and
> “hard"?
>
> Maybe this is one of the reasons why J is not as popular as it ought to be.
>
> I “love” J and always use it.
>
> But I have not been able to convince a single other person to take it up.
>
> I’m always wondering why?   Does it mean it’s just too intricate for the
> average Joe.
> Most people on this forum I imagine love the intricacy and see it as an
> enjoyable challenge.
>
> But the average Joe just wants to solve problems as quickly as possible
> and get on with life, not waste time on challenging intricate puzzles.
>
> So perhaps J is too much “puzzle solving” rather than “problem solving”
>
> Notwithstanding the above — I’ll always stick with J.
>
>
> > On 8 Sep 2023, at 04:22, Jose Mario Quintana <
> jose.mario.quint...@gmail.com> wrote:
> >
> > Oops, I forgot o=. @:
> >
> > On Thu, Sep 7, 2023 at 1:27 PM Jose Mario Quintana <
> > jose.mario.quint...@gmail.com> wrote:
> >
> >>> The order of the last two appear "unnatural".  (To my way of thinking
> at
> >> least)
> >>> This seems to beg the question what is the natural order when  slicing.
> >>
> >> The answer might depend on the intended usage of the verb that you have
> in
> >> mind. If, for example,
> >> you want to preserve the order of the remaining axes, then Henry's
> >> suggestion modified by Raul would work,
> >>
> >>   $ Y=. i.2 3 4 5
> >> 2 3 4 5
> >>
> >>   slicep=. ~.@(, i.@#@$) |: ]
> >>
> >>   (0 1 2 3) ($ o slicep"0 _) Y
> >> 2 3 4 5
> >> 3 2 4 5
> >> 4 2 3 5
> >> 5 2 3 4
> >>
> >> Another possibility is to rotate the axes,
> >>
> >>   slicer=. (|. i.@:#@:$@:]) |: ]
> >>
> >>   (0 1 2 3) ($ o slicer"0 _) Y
> >> 2 3 4 5
> >> 3 4 5 2
> >> 4 5 2 3
> >> 5 2 3 4
> >>
> >> I hope this helps
> >>
> >>
> >> On Wed, Sep 6, 2023 at 7:58 PM Piet de Jong <pietd...@gmail.com> wrote:
> >>>
> >>> This works!
> >>> Except the ordering of the axes is slightly unusual to my way of
> >> thinking.
> >>> For example suppose m=.i.3 3 3 is the “cube" be sliced and v is your
> >> verb.
> >>> Then the items of (0 v m) has successive items  “going back” into the
> >> cube.
> >>> The items (1 v m) are the horizontal slices.
> >>> The items of (2 v m) are the vertical slices.
> >>>
> >>> The order of the last two appear "unnatural".  (To my way of thinking
> at
> >> least)
> >>> This seems to beg the question what is the natural order when  slicing.
> >>>
> >>>> On 7 Sep 2023, at 08:32, Henry Rich <henryhr...@gmail.com> wrote:
> >>>>
> >>>> Since you want all the slices, what you are looking for is a
> transpose.
> >>>>
> >>>> Maybe
> >>>>
> >>>> ~.@(, i.@#) |: ]
> >>>>
> >>>> Untested.
> >>>>
> >>>> Henry Rich
> >>>>
> >>>> On Wed, Sep 6, 2023, 6:10 PM Piet de Jong <pietd...@gmail.com> wrote:
> >>>>
> >>>>> Here is my “wish"
> >>>>>
> >>>>> A dyadic (tacit) verb such that x v y gives all the slices of y along
> >>>>> dimension x, where x is integer.   That is to say
> >>>>>
> >>>>> i{ x v y
> >>>>>
> >>>>> is slice i of the array y along dimension x.
> >>>>>
> >>>>> Thanks for all your help!
> >>>>>
> >>>>>> On 7 Sep 2023, at 08:04, 'robert therriault' via Programming <
> >>>>> programm...@jsoftware.com> wrote:
> >>>>>>
> >>>>>> Or something like this?
> >>>>>>
> >>>>>>  [n =. i. 2 2 2
> >>>>>> 0 1
> >>>>>> 2 3
> >>>>>>
> >>>>>> 4 5
> >>>>>> 6 7
> >>>>>> ,./ n
> >>>>>> 0 1 4 5
> >>>>>> 2 3 6 7
> >>>>>> ($ $ (,@,./)) n
> >>>>>> 0 1
> >>>>>> 4 5
> >>>>>>
> >>>>>> 2 3
> >>>>>> 6 7
> >>>>>>
> >>>>>> Cheers, bob
> >>>>>>
> >>>>>>
> >>>>>>> On Sep 6, 2023, at 14:49, 'robert therriault' via Programming <
> >>>>> programm...@jsoftware.com> wrote:
> >>>>>>>
> >>>>>>> Hi Piet,
> >>>>>>>
> >>>>>>> Maybe show us what you would want to do with higher dimensions? Or
> a
> >>>>> less symmetric 2 dimensional shape?
> >>>>>>>
> >>>>>>> For shape 2 2, I would use the even simpler
> >>>>>>>
> >>>>>>> |: m
> >>>>>>> 0 2
> >>>>>>> 1 3
> >>>>>>>
> >>>>>>> Hope this helps.
> >>>>>>>
> >>>>>>> Cheers, bob
> >>>>>>>
> >>>>>>>> On Sep 6, 2023, at 14:26, Brian Schott <schott.br...@gmail.com>
> >> wrote:
> >>>>>>>>
> >>>>>>>> ,./0 1 {"1  m
> >>>>>>>
> >>>>>>>
> >> ----------------------------------------------------------------------
> >>>>>>> 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
> >>>>>
> >>>> ----------------------------------------------------------------------
> >>>> 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
>
> ----------------------------------------------------------------------
> 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