Here's another power iterator approach:

   {."2 ({. f"1 }.)^:(i.@#) !/~i.10

And here's a looping explicit approach:

orto=:3 :0
  a=. 1 {. y
  for. i.(#y)-1 do.
    a=.a,{.y=.({:a)f"1}.y
  end.
)

The explicit approach should be more efficient on very large arguments, but
has no advantage on a 10 by 10.

Thanks,

-- 
Raul

On Tue, Sep 16, 2014 at 4:46 AM, Aai <[email protected]> wrote:

> I'm not sure if this is less embarrassing, but here's an power iterator
> solution:
>
> 0{::([ ((,{.);]) {:@[ f"1 }.@])&>/^:(<:@#`(,:@{.;])) !/~i.10
>
>
>
> On 16-09-14 08:56, 'Bo Jacoby' via Programming wrote:
>
>> I managed to ortogonalize a 10 10 - matrix like this:
>>
>>     f=.[:(%+./)(]*[:+/[*[)-[*[:+/*
>>     orto =. 3 : 0
>> a=.,:{.y
>> a=.a,{.y=.({:a)f"1}.y
>> a=.a,{.y=.({:a)f"1}.y
>> a=.a,{.y=.({:a)f"1}.y
>> a=.a,{.y=.({:a)f"1}.y
>> a=.a,{.y=.({:a)f"1}.y
>> a=.a,{.y=.({:a)f"1}.y
>> a=.a,{.y=.({:a)f"1}.y
>> a=.a,{.y=.({:a)f"1}.y
>> a=.a,{.y=.({:a)f"1}.y
>> )
>>     orto(!/~)i.10
>>    1   1   1   1    1   1   1   1   1  1
>>   _9  _7  _5  _3   _1   1   3   5   7  9
>>    6   2  _1  _3   _4  _4  _3  _1   2  6
>> _42  14  35  31   12 _12 _31 _35 _14 42
>>   18 _22 _17   3   18  18   3 _17 _22 18
>>   _6  14  _1 _11   _6   6  11   1 _14  6
>>    3 _11  10   6   _8  _8   6  10 _11  3
>>   _9  47 _86  42   56 _56 _42  86 _47  9
>>    1  _7  20 _28   14  14 _28  20  _7  1
>>   _1   9 _36  84 _126 126 _84  36  _9  1
>>
>>
>> How can the program orto be made less embarrassing?
>>
>> Thank you!
>>
>>
>> Bo.
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>>
>
> --
> Met vriendelijke groet,
> @@i = Arie Groeneveld
>
>
> ----------------------------------------------------------------------
> 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