Need to find dot product between two second order tensor

8 views (last 30 days)
Using matlab randi function to generate a (LxM) matrix S and a (MxN) matrix T. Component ranging from 0 to 9 with L,M,N> 2. Calculate R=S.T use for loop to iterate through the admissible values from indices i and j.
Ahmar Yanis
Ahmar Yanis on 4 Oct 2022
% Define the matrix that represents tensor S
S = randi([0,9],3,3)
% Define the matrix that represents vecor u
u = randi([0,9],3,3)
% Apply the dot product
for i =1:size(S,1)
for k=1:size(u,2)
w(i) = dot(S(i),u(k));
the part which i dont understand is the for loop how will i iterate

Sign in to comment.

Answers (1)

James Tursa
James Tursa on 4 Oct 2022
Edited: James Tursa on 4 Oct 2022
If you change the inner loop calculation to this:
w(i,k) = dot(S(i,:),u(:,k));
then you would have dot products between the S rows and u columns. But the result of this is simply going to be the matrix product S*u as I mentioned above. I'm still not sure what you want to do. Can you give a small numeric example of inputs and desired output?


Find more on Operators and Elementary Operations 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!

Translated by