Finding the closest value in an array of 7 dimension vector

1 view (last 30 days)
Hi,
I have an array period_temp (2,1,1,10,10,10,8) which gives a lot of values ​​in 2 * 1 * 1 * 10 * 10 * 8 matrix
now suppose i have one value say 3.5 which is not present in the matrix.
How do I find the closest value to 3.5?
Please guide me, I am a beginner

Accepted Answer

Ameer Hamza
Ameer Hamza on 17 Apr 2020
Edited: Ameer Hamza on 17 Apr 2020
This code shows an example
x = rand(2,2,2);
val = 0.5;
[~,idx] = min(abs(x-val), [], 'all', 'linear');
[i1,i2,i3] = ind2sub(size(x), idx); % return index in each dimension
closest_value = x(i1,i2,i3);
The following is equivalent to the above code but convenient to use if the number of dimensions is large.
x = rand(2,2,2);
val = 0.5;
[~,idx] = min(abs(x-val), [], 'all', 'linear');
[i{1:3}] = ind2sub(size(x), idx); % return index in each dimension
closest_value = x(i{:});

More Answers (0)

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!