Am trying to reduce a vector by summing some elements in the vector to form another vecter

1 Ansicht (letzte 30 Tage)
example if v=[40,34,10,8,6,2] then the new vector will make 40 to be the reference point. after comparing each element the new vector will be N=[40,34,26]
  6 Kommentare

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Andrei Bobrov
Andrei Bobrov am 15 Nov. 2017
Bearbeitet: Andrei Bobrov am 15 Nov. 2017
b = cumsum(hankel(v));
k = max(b .* (b <= 40));
N = k(cumsum(k) <= b(end,1));
or
t = cumsum(hankel(v));
t = max(t.*(t <= 40));
N = t(cumsum(t) <= sum(v));
  2 Kommentare
Bashir Yusuf Bichi
Bashir Yusuf Bichi am 16 Nov. 2017
pls if I have a vector a=[30.85,4.11,6.17,2.51,2.28]; b=sum(a)/numel(a); I want to find the closes value to the average b and its indices, what will I do?
Andrei Bobrov
Andrei Bobrov am 16 Nov. 2017
a=[30.85,4.11,6.17,2.51,2.28];
b = mean(a);
t = a < b;
vals = a(t);
indices = find(t);

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by