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)

Community Treasure Hunt

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

Start Hunting!