How can i delete max values for each 5 rows in vector
Ältere Kommentare anzeigen
i have this vector A= 1 14 4 23 3 8 9 12 4 5 2 4 19 20 22
A=A'
The result will be R= 1 14 4 3 8 9 4 5 2 4 19 20
Akzeptierte Antwort
Weitere Antworten (1)
Davide Masiello
am 29 Dez. 2022
Bearbeitet: Davide Masiello
am 29 Dez. 2022
The following code will apply to any lenght of A and any length N of window from which to delete the maximum, provided that length(A)/N is an integer.
A = [1 14 4 23 3 8 9 12 4 5 2 4 19 20 22];
R = rmvMaxEveryN(A,5)
function out = rmvMaxEveryN(array,N)
[~,idx] = max(reshape(array,[N,length(array)/N]),[],1);
idx = idx+(0:N:length(array)-N);
array(idx) = [];
out = array;
end
3 Kommentare
abdullah al-dulaimi
am 29 Dez. 2022
abdullah al-dulaimi
am 29 Dez. 2022
Davide Masiello
am 29 Dez. 2022
Sorry I realised later there was a mistake and adjusted my answer.
Kategorien
Mehr zu Creating and Concatenating Matrices finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!