dsearchn() Command is slowing down my algorithm, Any better Solution? MATLAB
古いコメントを表示
I am using the following code to calculate altitude.
Data = [Distance1',Gradient];
Result = Data(dsearchn(Data(:,1), Distance2), 2);
Altitude = -cumtrapz(Distance2, Result)/1000;
Distance 1 and Distance 2 has different size with same values so I am comparing them to get corresponding value of Gradient to use with Distance 2.
Just to execute these 3 lines the Matlab takes 12 to 15 seconds. Which slow down my whole algorithm.
Is there any better way I can perform above action without slowing down my algorithm?
11 件のコメント
Bruno Luong
2018 年 10 月 26 日
Yeah of course, almost anything else is better, why on earth are you using DSEARCHN for numbers? Use INTERP1 with 'nearest' option.
Shahab Khan
2018 年 10 月 26 日
Bruno Luong
2018 年 10 月 26 日
編集済み: Bruno Luong
2018 年 10 月 26 日
Other way around: first you give us a (small) example.
Shahab Khan
2018 年 10 月 26 日
編集済み: Shahab Khan
2018 年 10 月 26 日
Bruno Luong
2018 年 10 月 27 日
You give a piece of code, without telling the size the class of your Data. No one can run your code if copy/past in MATLAB. Almost useless for people who tries to answer the question.
An "example" is some extra instruction to generate a small piece data, (and eventually an expecting output if the code is buggy and does not produce what you expect).
Shahab Khan
2018 年 10 月 27 日
Bruno Luong
2018 年 10 月 27 日
編集済み: Bruno Luong
2018 年 10 月 27 日
Replace
dsearchn(Data(:,1), Distance2)
by
interp1(Distance1,Distance2,'nearest');
Shahab Khan
2018 年 10 月 27 日
Shahab Khan
2018 年 10 月 27 日
Bruno Luong
2018 年 10 月 27 日
編集済み: Bruno Luong
2018 年 10 月 27 日
I wrote replace just the DSEARCH, not the rest.
If you want to get the same Result as with
Data = [Distance1',Gradient];
Result = Data(dsearchn(Data(:,1), Distance2), 2);
and Data is just temporary variable and you don' mind to trash it away after, then
Result = interp1(Distance1,Gradient,Distance2,'nearest');
Shahab Khan
2018 年 10 月 27 日
採用された回答
その他の回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Data Type Identification についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!