How to vectorize the multiplication of arrays with DIM=5?
2 views (last 30 days)
Show older comments
I have a three dimensional domain in MATLAB. For each point in the domain I have defined three arrays of size (NX,NY,NZ) at each point of the domain:
A1; % size(A1) = [NX NY NZ]
A2; % size(A2) = [NX NY NZ]
A3; % size(A3) = [NX NY NZ]
For each element, I am trying to construct an array which holds the value of A1, A2, and A3. Would the following be a good candidate for having a 1×3 vector at each point?
B = [A1(:) A2(:) A3(:)];
B = reshape(B, [size(A1) 1 3]);
If the 1×3 array is named C, I am trying to find C'*C at each point.
C = [A1(i,j,k) A2(i,j,k) A3(i,j,k)]; % size(C) = [1 3]
D = C'*C; % size(D) = [3 3]
My ultimate goal is to find the array D with size 3×3 for all the points in the domain in a vectorize fashion? Could someone help me?
2 Comments
Matt J
on 29 May 2014
Are you sure you don't mean the inner product
C(i,j,k) = [A1(i,j,k) A2(i,j,k) A3(i,j,k)]*[A1(i,j,k) A2(i,j,k) A3(i,j,k)]'
The expression you have is a non-scalar, outer product and cannot be assigned to a scalar location C(i,j,k).
Answers (0)
See Also
Categories
Find more on Entering Commands in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!