How can i delete max values for each 5 rows in vector
Afficher commentaires plus anciens
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
Réponse acceptée
Plus de réponses (1)
Davide Masiello
le 29 Déc 2022
Modifié(e) : Davide Masiello
le 29 Déc 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 commentaires
abdullah al-dulaimi
le 29 Déc 2022
abdullah al-dulaimi
le 29 Déc 2022
Davide Masiello
le 29 Déc 2022
Sorry I realised later there was a mistake and adjusted my answer.
Catégories
En savoir plus sur Creating and Concatenating Matrices dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!