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!