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