I share your antipathy to ". but I think it is unfounded.  Surely it's 
no different from using 3 :   .

,./ will work but it will have quadratic performance.  Avoid for large 
operands.

Henry Rich



Sherlock, Ric wrote:
> Thanks Henry
> This is much simpler but I have this (probably irrational) negative feeling 
> about using Do (".). I imagine that Evoke (~) is probably just Do (".) under 
> the covers so perhaps I just need to get over it!! Reassurances welcome :-)
> 
> The other thing I like about the other solution is that it will give a length 
> error if the columns are not equal length. Whether that is desirable is 
> obviously problem dependent, but in my case it is a plus. Combining bits I 
> get:
> 
> ,.&:>/@:(".&.>)@;: 'Var1 Var2 Var3 Var4 Var5'
> 
>> From: Henry Rich
>> Sent: Thursday, 17 June 2010 12:23
>>
>> |:@:(".@>)      ;: 'Var3 Var5 Var4 Var1 Var2'
>>
>> Sherlock, Ric wrote:
>>> How best to form a matrix from a list of noun names where each noun
>> is a list of values that will form a column in the matrix?
>>> Below is one solution, are there better ones?
>>>
>>> Named nouns:
>>> 'Var3 Var5 Var4 Var1 Var2' =: 5 7 ?...@$ 60
>>>
>>> evoke=: 3 : 'y~'
>>> toMatrix =: [: ,.&:>/ [: evoke&.> ;:
>>>
>>>    toMatrix 'Var1 Var2 Var3 Var4 Var5'
>>> 16 36  6 31 37
>>>  0 46 35 32 40
>>> 24  5 59 58 14
>>> 24 17 52  0  6
>>> 11  8 14 10 38
>>> 13 48 39 42 13
>>> 23 42 20 11 58
>>>
>>> ---------------------------------------------------------------------
>> -
>>> 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