I didn't understand how put the inputs in tprod function
2 次查看(过去 30 天)
显示 更早的评论
How have I to put the input in tprod to have the same result of the code that follows?
a=rand(3,4,5);
b=rand(4,6);
for i=1:5
c(:,i,:)=a(:,:,i)*b;
end
[edit: matrix dimension corrected]
0 个评论
回答(2 个)
Fangjun Jiang
2011-8-19
a=rand(3,4,5);
b=rand(3,4);
c=zeros(size(a));
for i=1:5
c(:,:,i)=a(:,:,i).*b;
end
Or do you mean this link? There is a 3-D example there. http://www.mathworks.com/matlabcentral/fileexchange/16275-tprod-arbitary-tensor-products-between-n-d-arrays/content/tprod.m
Okay, I tried, it should be like below. The original tprod.m does contain incorrect examples.
%%Your code
a=rand(3,4,5);
b=rand(4,6);
for i=1:5
c(:,i,:)=a(:,:,i)*b;
end
% use tprod
Z=tprod(a,[1 -1 2],b,[-1 3]);
err=abs(Z-c);
err=sum(err(:))
err =
0
3 个评论
Fangjun Jiang
2011-8-20
That is the problem! You need to at least provide some explanation about tprod. It's not a MATLAB function anywhere. Do you mean this?
http://www.mathworks.com/matlabcentral/fileexchange/16275
Walter Roberson
2011-8-19
What is "tprod" ? It does not seem to be indexed on the MATHWORKS web site.
Your code produces an error, as at each step you are attempting to do a matrix multiplication of a 3 x 4 matrix, by a 3 x 4 matrix. Either you need to use .* to do element-by-element multiplication, or you need to change your formula.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!