Consider an one dimensional convolution, and change the multiplication part (a*b) to power (a^b) and summation part (Sigma) to multiplication (Phi). How can I write a program for this using vectorization.

1 visualización (últimos 30 días)
Mathematically I want to implement a function. A and B are two integer arrays.
I have implemented the program using for loops (submitted below). How can I write a program for this using vectorization.
m=length(a);
n=length(b);
A=[a,zeros(1,n)];
B=[b,zeros(1,m)];
out=zeros(1,m+n-1);
for i=1:m+n-1
out(i)=1;
for j=1:m
if i-j+1>0
out(i)=out(i)*(A(j)^B(i-j+1));
end
end
end
Thank you.

Respuestas (1)

Matt J
Matt J el 5 de Oct. de 2016
Editada: Matt J el 5 de Oct. de 2016
out= exp( conv(log(A),B) );
out=round(real(out));
  8 comentarios
Shaik Ahmad
Shaik Ahmad el 7 de Oct. de 2016
Editada: Shaik Ahmad el 12 de Oct. de 2016
Yes, you are correct. How can I overcome that problem. Any other solutions.

Iniciar sesión para comentar.

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by