How to Multiply the following matrices case?

1 view (last 30 days)
How to Multiply the following matrices case:
There is a matrix "T" with size 3*3*18 and another vector array "D" with size 3*1*18
I want to multiply the first matrix in T, I mean with size 3*3*1 with all other vectors in D but dont include the one that have the same slice i.e. multiply by the vector rom size 3*1*2 to 3*1*18 ... and store the output answers.
Do the same for the 2nd,3rd ..... matrices in T .... (Don't multiply the Matrix T with specific slice number with same slice number at D)
continue multiplying the 2nd T with all D but dont include the second D .... and so on for all T and D ..

Accepted Answer

Matt J
Matt J on 17 May 2022
Edited: Matt J on 17 May 2022
T=rand(3,3,18); D=rand(3,1,18);
M=pagemtimes(T,D(:,:));
M(:,logical(eye(18)))=[];
M=reshape(M,3,17,18);
whos M
Name Size Bytes Class Attributes M 3x17x18 7344 double
  10 Comments
Matt J
Matt J on 17 May 2022
Edited: Matt J on 17 May 2022
What is "separately"? Do you mean in separate elements of a cell array?
T=rand(3,3,18); D=rand(3,1,18);
M=pagemtimes(T,D(:,:));
M(:,logical(eye(18)))=[];
M=reshape(M,3,17,18);
M=reshape( num2cell(M,[1,2]) ,18,1)
M = 18×1 cell array
{3×17 double} {3×17 double} {3×17 double} {3×17 double} {3×17 double} {3×17 double} {3×17 double} {3×17 double} {3×17 double} {3×17 double} {3×17 double} {3×17 double} {3×17 double} {3×17 double} {3×17 double} {3×17 double}
whos M
Name Size Bytes Class Attributes M 18x1 9216 cell

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by