Finding Data in a loaded file

1 次查看(过去 30 天)
I am having a data file with amplitudes mentioned in it almost 10000 samples are present and I know value of one amplitude which is present in the data and want to find location of that sample how to do that ?

采纳的回答

Ruben Costa
Ruben Costa 2019-7-10
Hello,
find(NameOfMatrix==ValueThatYouknow)
This will give you the exact position of the value that you want in the matrix that you have! If you want, you can use any condition to know the position of other values!
Hope it helps!
  1 个评论
Guillaume
Guillaume 2019-7-10
编辑:Guillaume 2019-7-10
Depending on what is to be done afterward, the find may not be necessary. The logical vector returned by the comparison may be enough.
Note that == does exact comparison and may therefore not work as expected if the data stored in the matrices is not integer. See for example:
>> (0.3-0.2-0.1) == 0 %is false
ans =
logical
0
For floating point numbers, you would be better off using the method shown by KSSV (with an appropriate tolerance) or ismembertol.

请先登录,再进行评论。

更多回答(1 个)

KSSV
KSSV 2019-7-10
Let A be your data and you want to seek b from it.
idx = find(abs(A-b)<10^-5)
  3 个评论
KSSV
KSSV 2019-7-10
It is a tolerance set, to check the equality of both numbers. This is how the floating numbers are checked.
Guillaume
Guillaume 2019-7-10
10^-5 is better written as 1e-5 (1e-5 does not involve any runtime computation).
It must be pointed out that the comparison tolerance must be chosen in accordance to the magnitude of the numbers being compared. 1e-5 would be completely inapproriate if the magnitude of the numbers being compared is in the order of 1e-10.
For that reason, ismembertol would be better as it automatically calculate the appropriate tolerance for you.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by