Thanks. Have you seen https://www.astro.umd.edu/~jph/J_page.html ?
lots of number crunching code. On Thu, Apr 20, 2017 at 11:23 AM, Raul Miller <[email protected]> wrote: > You probably do not need a readtensor verb for your application. > > Those capabilities are waiting there in J for you to use them*, > however most (maybe all?) applications tend to need only a small > fraction of the general capabilities implemented in J. > > * As an example use of higher dimensioned arrays, consider the cube > verb in the fast fourier transform implementation at > http://code.jsoftware.com/wiki/Essays/FFT > > Thanks, > > -- > Raul > > > On Thu, Apr 20, 2017 at 9:23 AM, Michael Goodrich > <[email protected]> wrote: > > Raul, > > > > I see your point. I was expecting too much from 'readtable', and I > > apparently need a 'readtensor' verb for my app. > > > > On Sun, Apr 16, 2017 at 4:02 PM, Raul Miller <[email protected]> > wrote: > > > >> On Sun, Apr 16, 2017 at 2:26 PM, Michael Goodrich > >> <[email protected]> wrote: > >> > Why does J not treat a column of numbers as a N by 1 'matrix' ie a > vector > >> > rather than a list? > >> > >> From my point of view, J does treat a column of numbers as an N by 1 > >> matrix. > >> > >> But perhaps it is better to go over specific examples (like other > >> people have been doing here). > >> > >> $,.1 2 3 2 1 > >> 5 1 > >> ($,.1 2 3 2 1) > >> 5 1 > >> $,:1 2 3 2 1 > >> 1 5 > >> $(,.1 2 3 2 1) +/ .* ,:1 2 3 2 1 > >> 5 5 > >> $(,:1 2 3 2 1) +/ .* ,.1 2 3 2 1 > >> 1 1 > >> > >> But the real issue here is readtable defined at > >> http://www.jsoftware.com/help/primer/files.htm > >> > >> readtable =: 3 : 0 > >> d =. 1!:1 y > >> d =. toJ d > >> d =. cutopen d > >> d =. 0 ". each d > >> d =. > d > >> ) > >> > >> Here, as Chris Burke pointed out, each line of the file is converted > >> to numeric form using 0 ". expression, and when a line contains only > >> one number you do not get a list of numbers of shape 1, but instead > >> just get a number. When these results are merged into the final form > >> you get a list instead of a table. (But this list is a vector, from a > >> J point of view... if that seems confusing, bear with me.) > >> > >> The underlying issue that I think you might be asking about is that > >> the mathematical point of view which J was built on was tensor algebra > >> rather than matrix algebra. So, rather than "everything is a matrix" > >> we instead go with "everything is a tensor" (or, in the jargon used by > >> many computer programmers: "everything is an array of arbitrary > >> dimension"). > >> > >> So, going back a bit, when we do something like 0 ". '93' we get a > >> result which is an numeric array with zero dimensions. > >> > >> If you wanted to force readtable to always return a matrix result, you > >> could do something like this: > >> > >> readtable =: 3 : 0 > >> d =. 1!:1 y > >> d =. toJ d > >> d =. cutopen d > >> d =. 0 ". each d > >> d =. , each d > >> d =. > d > >> ) > >> > >> This will force each individual line to be a 1 dimensional array, so > >> when they are assembled into the result you always will get a matrix. > >> (And note that you do not have to worry about the analogous issue for > >> one row files because cutopen always returns a list of boxes.) > >> > >> I hope this helps, > >> > >> -- > >> Raul > >> ---------------------------------------------------------------------- > >> For information about J forums see http://www.jsoftware.com/forums.htm > >> > > > > > > > > -- > > Dominus enim Iesus Ecclesiae Suae et, > > > > -Michael > > > > > > "Let your religion be less of a theory and more of a love affair." > > - G.K. Chesterton > > ---------------------------------------------------------------------- > > 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
