How to vectorize the find function?
이전 댓글 표시
This is my code:
for i=1:size(Z,3)
indmax(i)=find(abs(Z(1,:,i))>z90(1,1,i),1);
indmin(i)=find(abs(Z(1,:,i))>z10(1,1,i),1);
end
trise(:,1)=(t(indmax)-t(indmin));
The variable Z is normally 3 or 6 rows, many columns and 5-10 pages. Something like:
size(Z)= 6 1920 8
The variables z10 and z90 have the same number of rows and pages as Z and 1 column. Something like:
size(z10)=size(z90)=6 1 8
I would actually need to repeat this code 6 more times (1 for each row).
Is there a way to vectorize this?
채택된 답변
추가 답변 (1개)
Doug Hull
2011년 5월 13일
0 개 추천
Why vectorize?
Just add another for loop for the rows.
댓글 수: 4
Bernard Küsel
2011년 5월 13일
Matt Fig
2011년 5월 13일
You will find that pre-allocating your arrays will speed your code up tremendously if your data is that large.
Doug Hull
2011년 5월 13일
Your question is then about speeding up the code, not about vectorizing?
Bernard Küsel
2011년 5월 16일
카테고리
도움말 센터 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!