Multi Dimension Matrix Elements multiplication
Mostrar comentarios más antiguos
Hello,
I am strugling with some matrix multiplication...
I am having one M:
matrix and one N:
matrix with some given elements. Elements of M are given as
whereas elements of N are given as
. I wish to obtain maxtrix P:
whose elements
,
and
. Thus, matrix
would be
in my case.
matrix with some given elements. Elements of M are given as
. I wish to obtain maxtrix P:
whose elements
,
and
. Thus, matrix
would be
in my case.Does anyone know how to perform this complex operation in the fastest way (without loops)?
Thanks in advance
Respuestas (2)
Not completely without loops, but this should be fast enough. You should also be aware that loops can sometimes be the fastest way.
M=rand(3,2);N=rand(2,3,4);
%prime the execution engine to produce a more reliable comparison
timeit(@()option1(M,N));
timeit(@()option1(M,N))
timeit(@()option2(M,N))
isequal(option1(M,N),option2(M,N))
function P=option1(M,N)
P=zeros(size(M,1),size(N,2),size(N,3));
for n=1:size(M,1)
P(n,:,:)=M(n,1)*N(1,:,:)+M(n,2)*N(2,:,:);
end
end
function P=option2(M,N)
P=zeros(size(M,1),size(N,2),size(N,3));
for i=1:size(M,1)
for j=1:size(N,2)
for k=1:size(N,3)
P(i,j,k)=M(i,1)*N(1,j,k)+M(i,2)*N(2,j,k);
end
end
end
end
Steven Lord
el 24 de Feb. de 2021
0 votos
Categorías
Más información sobre MATLAB en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!