## Use of tensorprod function to compute multilinear forms

Hi everyone,

I have to compute the multilinear form of a tensor and a vector. Suppose for example we have a 4-dimensional tensor A and a vector v. The 4-linear form is the multiplication of A by v 4 times. The only way that I found to do this is to use "for" loops. I think there must be a way to use the "tensorprod" function to perform the operation more efficiently but I can’t find it. Thank you in advance to anyone who can help.

Cheers

n = 3;

A = rand(n,n,n,n);

v = rand(n,1);

for j = 1:n

for k = 1:n

G(:,k,j) = squeeze(v’*A(:,:,k,j));

end

end

for j = 1:n

J(:,j) = squeeze(v’*G(:,:,j));

end

res = v’*J*v;Hi everyone,

I have to compute the multilinear form of a tensor and a vector. Suppose for example we have a 4-dimensional tensor A and a vector v. The 4-linear form is the multiplication of A by v 4 times. The only way that I found to do this is to use "for" loops. I think there must be a way to use the "tensorprod" function to perform the operation more efficiently but I can’t find it. Thank you in advance to anyone who can help.

Cheers

n = 3;

A = rand(n,n,n,n);

v = rand(n,1);

for j = 1:n

for k = 1:n

G(:,k,j) = squeeze(v’*A(:,:,k,j));

end

end

for j = 1:n

J(:,j) = squeeze(v’*G(:,:,j));

end

res = v’*J*v; Hi everyone,

I have to compute the multilinear form of a tensor and a vector. Suppose for example we have a 4-dimensional tensor A and a vector v. The 4-linear form is the multiplication of A by v 4 times. The only way that I found to do this is to use "for" loops. I think there must be a way to use the "tensorprod" function to perform the operation more efficiently but I can’t find it. Thank you in advance to anyone who can help.

Cheers

n = 3;

A = rand(n,n,n,n);

v = rand(n,1);

for j = 1:n

for k = 1:n

G(:,k,j) = squeeze(v’*A(:,:,k,j));

end

end

for j = 1:n

J(:,j) = squeeze(v’*G(:,:,j));

end

res = v’*J*v; tensors, multilinear forms MATLAB Answers — New Questions