Tensor multiplication (Rank 4)

Is there a quick method (or quick and easy method) to transform rank 4 tensors in Matlab?
that is if I have a rank 4 tensor C(mnop) and a 3x3 transformation matrix A:
how do I implement this in matlab:
C'(ijkl) = A(im) A(jn) A(ko) A(lp) C(mnop)
or
C' = A A C AT AT
(where AT is the transpose of A)
kind regards William

4 Comments

Thanks for that. This is a custom function that seems quite complicated? Does Matlab not handle tensors in a more straightforward way?
José-Luis
José-Luis on 1 Aug 2017
Edited: José-Luis on 1 Aug 2017
Nowadays (R2016b +) Matlab allows for explicit expansion of arithmetic operations. This should take it a step closer to what you want.
Unsolicited disclaimer: I don't personally use that because I still find it confusing. I guess I'm getting old.
you're not wrong - that does look confusing. I was hoping for a something a little more straightforward (i.e. a one line command like one would use to transform a matrix!)

Sign in to comment.

Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Asked:

on 1 Aug 2017

Edited:

on 1 Aug 2017

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!