3-D matrices

1 view (last 30 days)
Ricky
Ricky on 8 May 2012
Hi there,
I wonder if anyone could tell me how to do the following:
- if I have a 3d matrix r is 10x200x100, and I want to find correlation of it which define as R = r*conj(r'). how do I do that? if I just put that equation in MATLAB it won't work as I wanted. Technically, I want R to be 10x10x100.
Cheers,
Rak

Answers (1)

Wayne King
Wayne King on 8 May 2012
R = randn(10,200,100);
for nn = 1:100
Rxx(:,:,nn) = R(:,:,nn)*R(:,:,nn)';
end
If R has complex elements, then R' conjugates the elements so I was not sure what you meant by conj(R'), did that mean you did not want to take the conjugate? If that is the case, do R(:,:,nn).'
  1 Comment
Ricky
Ricky on 8 May 2012
sorry I mean to write conj(r.') which is Hermitian transpose and which I just realize that you can just do r' which is the same. but anyway, that's not the point here, the point here is 3D matrix multiplication. I think your answer is right, but since I'm trying simplify my program to run faster, I tend not to use the 'for-loop' So is there any way you can do that without the knowledge of 'for-loop'?

Sign in to comment.

Products

Community Treasure Hunt

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

Start Hunting!