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

Geoff Hayes
Geoff Hayes 2015년 4월 18일
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 2015년 4월 19일
Is this yet another function that you are going to implement on a GPU?
Abeera Tariq
Abeera Tariq 2015년 4월 19일
편집: Abeera Tariq 2015년 4월 19일
@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 2015년 4월 19일
편집: Abeera Tariq 2015년 4월 19일
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 2015년 4월 19일
편집: Abeera Tariq 2015년 4월 19일
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;

답변 (0개)

이 질문은 마감되었습니다.

태그

질문:

2015년 4월 18일

마감:

2021년 8월 20일

Community Treasure Hunt

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

Start Hunting!

Translated by