What can be the vectorization of this code?

I am trying to vectorize this code.. what can be the vectorization of this code with input data
function hat_y=omp(s,T,N)
Size=size(T);
M=Size(1);
hat_y=zeros(1,N);
Aug_t=[];
r_n=s;
for times=1:M;
for col=1:N;
product(col)=abs(T(:,col)'*r_n);
end
[val,pos]=max(product);
Aug_t=[Aug_t,T(:,pos)];
T(:,pos)=zeros(M,1);
aug_y=(Aug_t'*Aug_t)^(-1)*Aug_t'*s;
r_n=s-Aug_t*aug_y;
pos_array(times)=pos;
if (abs(aug_y(end))^2/norm(aug_y)<0.05)
break;
end
end
hat_y(pos_array)=aug_y;

5 commentaires

Geoff Hayes
Geoff Hayes le 18 Avr 2015
Abeera - why do you wan to vectorize this function? Is the performance too slow (only takes a couple of seconds for me)?
James Tursa
James Tursa le 19 Avr 2015
Is this yet another function that you are going to implement on a GPU?
Abeera Tariq
Abeera Tariq le 19 Avr 2015
Modifié(e) : Abeera Tariq le 19 Avr 2015
@James Tursa I had the impression that the last algorithm was slow because of its inherent design, not of the implementation. but I was not convinced this will lead to great improvement in performance in Matlab. and left the other one nd started working on this..
Abeera Tariq
Abeera Tariq le 19 Avr 2015
Modifié(e) : Abeera Tariq le 19 Avr 2015
Geoff I need to implement this on GPU It is the sub part of the code my whole code has many loops inside loops like
for times=1:M;
for col=1:N;
product(col)=abs(T(:,col)'*r_n);
end
.........................
end
There are many loops in the major function which call this function.. I tried this version of algorithm on gpu but it tool longer time bcoz of loops .. so now em trying to remove them ..
Abeera Tariq
Abeera Tariq le 19 Avr 2015
Modifié(e) : Abeera Tariq le 19 Avr 2015
till now i did this
function hat_y=omp(s,T,N)
Size=size(T);
M=Size(1);
hat_y=zeros(1,N);
Aug_t=[];
r_n=s;
for times=1:M;
product(1:N)=abs(T(:,1:N).'*r_n);
[val,pos]=max(product);
Aug_t=[Aug_t,T(:,pos)];
T(:,pos)=zeros(M,1);
aug_y=(Aug_t'*Aug_t)^(-1)*Aug_t'*s;
r_n=s-Aug_t*aug_y;
pos_array(times)=pos;
end
hat_y(pos_array)=aug_y;

Réponses (0)

Cette question est clôturée.

Clôturé :

le 20 Août 2021

Community Treasure Hunt

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

Start Hunting!

Translated by