how to select higher value in a matrix and change that by introducing an error?
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
suchismita
le 2 Juin 2014
Réponse apportée : suchismita
le 2 Juin 2014
I have a matrix,
a= [ 0.83 0.85 0.97 0.1 0.95 0.93 0.2 ; 0.2 0.12 0.12 0.76 0.77 0.78 0.25 ; 0.88 0.32 0.11 0.77 0.87 0.89 0.99]
by ceil(a) we get c matrix: c=[ 1 1 1 0 1 1 0 ; 0 0 0 1 1 1 0 ; 1 0 0 1 1 1 1]
now i want to introduce error position wise as err=1:3
so, at first err=1 will be introduced to first row where the only highest value is find in matrix a and 1 will become 0,same wise in 2nd row and 3rd row. Then err=2, that means the first two highest value is find and 1 will become zero, then same will be carried out for 2nd,3rd row. Next err=3...where 3 higher value will be changed.
please help me out asap....
plz plz plz.....
5 commentaires
Roger Wohlwend
le 2 Juin 2014
Yes, but the sort command also tells you the original position of the sorted values (it's the second output variable). Use that information.
Réponse acceptée
George Papazafeiropoulos
le 2 Juin 2014
Are you looking for something like this?
a= [ 0.83 0.85 0.97 0.1 0.95 0.93 0.2;
0.2 0.12 0.12 0.76 0.77 0.78 0.25;
0.88 0.32 0.11 0.77 0.87 0.89 0.99];
c=round(a)
for i=1:3
for err=1:3
[~,d]=sort(a(err,:),'descend');
a(err,d(1:i))=0;
end
end
cfinal=round(a)
I hope this will help!
3 commentaires
George Papazafeiropoulos
le 2 Juin 2014
I think the following applies if you want the a matrix unaltered. The outer for loop (for i=1:3) is not required in this case, because for all i (=1,2,3) the maximum element of each row of A is selected and set to zero, so we can set i=3, select the three highest values, set them to zero and get rid of the initial i loop:
a= [ 0.83 0.85 0.97 0.1 0.95 0.93 0.2;
0.2 0.12 0.12 0.76 0.77 0.78 0.25;
0.88 0.32 0.11 0.77 0.87 0.89 0.99];
c=round(a)
for err=1:3
[~,d]=sort(a(err,:),'descend');
c(err,d(1:3))=0;
end
Plus de réponses (1)
Voir également
Catégories
En savoir plus sur Logical dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!