필터 지우기
필터 지우기

How to find the second closest value to a specific value from a given matrix

조회 수: 5 (최근 30일)
I have got a 18*12*6 matrix. From this matrix i want to find out the second closest value to 1.

채택된 답변

Stephen23
Stephen23 2018년 10월 30일
편집: Stephen23 2018년 10월 30일
Exactly as I showed you in my comment to your earlier question:
Use sort instead of min, and pick as many as you want:
>> [v,x] = sort(abs(k(:)-1));
>> [p,n,m] = ind2sub(size(k),x(1:3)) % closest three
p =
6
3
6
n =
9
4
8
m =
2
2
4
>> k(p(1),n(1),m(1)) % (first) closest.
ans = 0.99869
>> k(p(2),n(2),m(2)) % second closest.
ans = 0.99852
>> k(p(3),n(3),m(3)) % third closest.
ans = 0.99852
Use linear indexing to easily access the values in k, here are the closest ten values:
>> k(x(1:10))
ans =
0.99869
0.99852
0.99852
0.99852
0.99834
0.99816
0.99781
1.01296
1.01311
1.01327

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Operators and Elementary Operations에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by