mask (+/%#)@#"1 mat
2 7 0 16.5

or without the empty 3rd line:

   (+/%#)@> a: -.~ mask <@#"1 mat
2 7 16.5


Robert O'Boyle wrote:
> Thanks, Brian - slip of the finger on the leftmost entry. Here is the
> correct mask
> 
>     mask=. 0 1 1 1 0, 1 1 1 1 1, 0 0 0 0 0,: 1 1 1 1 0
>    mask
> 0 1 1 1 0
> 1 1 1 1 1
> 0 0 0 0 0
> 1 1 1 1 0
> 
> Which indicates that from matrix mat, I would like the average of columns 1
> 2 3 of row one, all columns of row 2, none of row 3 and 0, 1, 2 and 3 of row
> 4. 
> 
> Thus for mat
> 
> 0  1  2  3  4
>  5  6  7  8  9
> 10 11 12 13 14
> 15 16 17 18 19
> 
> I would like 3 numbers output - 2 for row 1, 7 for row 2 and 16.5 for row 4
> 
> Thanks
> 
> Bob
> 
> 
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of Brian Schott
> Sent: December 2, 2009 12:22 PM
> To: Programming forum
> Subject: Re: [Jprogramming] averages of non-zero elements of matrices
> 
> Bob,
> 
> Please give your desired output with the example, because your problem
> specification is a little ambigous, especially with your definition of
> mask, because its leftmost entry has only 4 elements and does not
> agree with your stated result.
> 
> On Wed, Dec 2, 2009 at 11:11 AM, Robert O'Boyle <[email protected]>
> wrote:
>>
>>
>>   mask=. 0 1 1 1, 1 1 1 1 1, 0 0 0 0 0,: 1 1 1 1 0
>>
> 
> [snip]
> 
>> Which properly identifies the row entries but shifts row 0 to the left by
>> one.
>>
>>
>>
> 
> 
> 
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to