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 ?
0 个评论
采纳的回答
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
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
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
2019-7-10
It is a tolerance set, to check the equality of both numbers. This is how the floating numbers are checked.
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 Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!