comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » tensor multiplication
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: tensor multiplication [message #20169 is a reply to message #20082] Thu, 18 May 2000 00:00 Go to previous message
Paul van Delst is currently offline  Paul van Delst
Messages: 364
Registered: March 1997
Senior Member
Daniel Luebbert wrote:
>
> Hi,
>
> does anybody out there know an efficient and elegant way (i.e., without
> for-loops)
> to implement a tensor multiplication in IDL?
>
> What I mean is this:
> IDL can do a matrix multiplication, e.g. if I do
> c = indgen(3,4)
> d = indgen(4)
> then for
> help, c#d
> I get
> LONG ARRAY[3],
> and that's what I expect.
>
> But now, when I take one more dimension, like
> c = indgen(2,3,4)
> d = indgen(4)
> then
> help, c#d
> gives an error! (incompatible matrix dimensions...).
> What a would like to get is obviously an
> ARRAY[2,3]
>
> Does anybody know how?

Great question! I have always only thought about 2D matrices, but why
should nD be any different? Maybe when IDL says "matrix" is really means
2-D array?

how about

sz = size(c)
e = INTARR( sz(1), sz(2) )
FOR i = 0, sz(1) - 1 DO BEGIN
tmp_e = REFORM( c[i,*,*] ) # d
e[i,*] = TEMPORARY( tmp_e )
ENDFOR

I know it is not a great solution (I haven't tested it, just typed it)
but something like this should work. If you encapsulate it in it's own
function, you would have a general tensor mult. method.

I'm sure the Gumley's, Fanning's, Markwardt's, and JD Smith's of the
world will have more elegant answers.

paulv

p.s. Can someone explain to me the utility/need for having both the #
*and* ## operator? I understand their operation but why both?
Convenience? Performance?
--
Paul van Delst Ph: (301) 763-8000 x7274
CIMSS @ NOAA/NCEP Fax: (301) 763-8545
Rm.202, 5200 Auth Rd. Email: pvandelst@ncep.noaa.gov
Camp Springs MD 20746
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: [XYZ]MINOR and /XLOG, /YLOG
Next Topic: Re: returning values from widget hierarchy

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Sat Nov 29 14:42:04 PST 2025

Total time taken to generate the page: 0.56218 seconds