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 visualizzazione (ultimi 30 giorni)
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.

Risposte (1)

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

Accedi per commentare.

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by