フィルターのクリア

how to find the location of a specific array element within the specific range in matlab?

2 ビュー (過去 30 日間)
pavan sunder
pavan sunder 2016 年 12 月 20 日
編集済み: José-Luis 2016 年 12 月 21 日
for example: d=[1 2 3 4 8 10 4 5 6 12 10 13];
i want to find the location of 10 within the range [4 8]
the expected answer would be 6.
I used the following command: a=find(d(4:8)==10);
the answer i am getting is 3 instead of 6.
Plz suggest me a way to solve this.

回答 (2 件)

José-Luis
José-Luis 2016 年 12 月 20 日
編集済み: José-Luis 2016 年 12 月 21 日
EDITED to avoid the use of range
d=[1 2 3 4 8 10 4 5 6 12 10 13];
idx(numel(d)) = 0;
idx(4:8) = 1;
a = find(d == 10 & idx)
  2 件のコメント
Image Analyst
Image Analyst 2016 年 12 月 20 日
If you have the stats toolbox, you might want to rename since range is a built-in function of that toolbox.
José-Luis
José-Luis 2016 年 12 月 21 日
編集済み: José-Luis 2016 年 12 月 21 日
Thanks, good point. While range should have rung a bell, there are so many reserved names that I wonder if this is headed towards the atrocity that dunders are.

サインインしてコメントする。


Image Analyst
Image Analyst 2016 年 12 月 20 日
Here's a way:
d=[1 2 3 4 8 10 4 5 6 12 10 13];
startingIndex = 4;
endingIndex = 8;
valueToLookFor = 10;
locations = find(d(startingIndex : endingIndex) == valueToLookFor) + startingIndex - 1

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

タグ

タグが未入力です。

Community Treasure Hunt

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

Start Hunting!

Translated by