Find the Minimum Combination of Sum

6 visualizaciones (últimos 30 días)
MarshallSc el 19 de En. de 2022
Comentada: MarshallSc el 19 de En. de 2022
I have a 100 x 1 vector with numeric values, what I want to find is the minimum combination of the reference point with the upper and lower indices for the equation below. For example:
A = rand(100,1);
%Lets say the reference point is A(31)
comb = +-A(31 + 1) +- A(31) +- A(31-1) % So there will be 2^3 scenarios
% When the reference point reaches index 100 (length of the vector), the operation stops
I want to find the absolute minimum combintation of all the possible combinations. Can a function be created to perform this operation since I need to perform this for multiple vectors in a for loop?
I'd appreciate it if someone can please help me, thank you!
  2 comentarios
MarshallSc el 19 de En. de 2022
Thanks for your reply. Yes, I want the minimum absolute value which is the closest combination to zero.

Iniciar sesión para comentar.

Respuesta aceptada

Voss el 19 de En. de 2022
N = 100;
window_size = 3;
A = rand(N,1);
signs = 1-2*(dec2bin(0:2^(window_size-1)-1,window_size)-'0').';
comb = NaN(N,1);
comb_type = NaN(N,1);
d = (window_size-1)/2;
for i = d+1:N-d
[comb(i),comb_type(i)] = min(abs(sum(A(i+(-d:d)).*signs)));
[min_comb,idx] = min(comb);
% minimum absolute-value sum:
% occurs at this row of A:
% using these elements of A:
0.8604 0.8003 0.0643
% with this way of combining the elements:
1 -1 -1

Más respuestas (1)

Jon el 19 de En. de 2022
If I understand what you are trying to do, I think this might work for you
A = rand(100,1);
% define matrix which can be multiplied by 3 elements to give all possible
% signed summations
c = [-1 -1 -1;-1 -1 1;-1 1 -1; -1 1 1;1 -1 -1;1 -1 1;1 1 -1; 1 1 1]
% loop through data
% not sure what you want to do about end points, so start and end on
% interior points
numPoints = numel(A)
result = zeros(numPoints-2,1); % preallocate array to hold result
for k = 2:numPoints-1
result(k) = min(abs(c*A(k-1:k+1)));
  2 comentarios
MarshallSc el 19 de En. de 2022
Thank you sir, this method is very useful.

Iniciar sesión para comentar.


Más información sobre Resizing and Reshaping Matrices en Help Center y File Exchange.


Community Treasure Hunt

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

Start Hunting!

Translated by