How to vectorize the multiplication of arrays with DIM=5?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Matt J
le 29 Mai 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).
Réponses (0)
Voir également
Catégories
En savoir plus sur Polynomials dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!