Finding indices of certain numbers from simulation data
조회 수: 6 (최근 30일)
이전 댓글 표시
Hello all,
I want to find out the index values of certain numbers from an array dataset obtained from a Simulink simulation. The simulation results are stored in the workspace as an array. I am logging it to the workspace using a scope.
I tried using the find() command to find the index values, but it just returned an empty vector. I even tried using ismember() to return 0 or 1 based on whether a number belongs to that simulation data, but that also returned an empty vector.
The find() command works fine when using it on arrays imported from excel sheet.
I am not sure what I am doing wrong. Any suggestions or advice would be of great help. Thank you very much in advance.
Edit: I have attached the simulation file
댓글 수: 3
Mathieu NOE
2023년 3월 1일
hello
please share your data (as mat file) and explain which data (indexes) you are looking for
Askic V
2023년 3월 5일
편집: Askic V
2023년 3월 6일
Is it possible that array is of type double (all elements are double) and you try to use the function find to find this specific number?
It is very hard to use "equal" with double numbers because there is no infinite precision
x = [1, 1/3, 3/4, 4/5, 1, 1.1]
[c, i] = find(x==0.333333333333333)
답변 (2개)
Akira Agata
2023년 3월 6일
The following is an example:
x = [1, 1/3, 3/4, 4/5, 1, 1.1];
idx = ismembertol(x, 0.33, 0.01); % find 0.33±max(x)*0.01
idx
x(idx)
Sarvesh Kale
2023년 3월 6일
Suppose your logged data is x in workspace then to find index of a certain number in that you can do the following
x=[1,1,1,2,2,3,3,4,5,5,5];
n=1:length(x) % generate index vector
key = 2 ;
idx = x == key % comparision to search your number
n(idx) % this will give you index
I hope this helps
Thank you
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!