HOW TO FIND THE LOCAL MAXIMA FOR EVERY ROW IN A MATRIX
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hii,
Hallo suppose if i have a 3x3 matrix like [0 -1.2 -0.6; -0.9 -5 -6; 0 -1.8 -2.5] and also I have a threshold value mentioned suppose let it be threshold > -1 I obtain results as [1 0 1; 1 0 0; 1 0 0] but what i need is a matrix which distinguishes the different intensities of results obtained above the threshold for ex: my results should look like [1 0 0.5; 1 0 0; 1 0 0]
0 commentaires
Réponses (1)
Geoff
le 19 Mar 2012
A = [0 -1.2 -0.6; -0.9 -5 -6; 0 -1.8 -2.5];
threshold = -1;
result = max( A - threshold, 0 );
Now, you seem to be only interested in 'intensities' that are multiples of 0.5. To get that, do this:
result = round(result * 2) / 2;
3 commentaires
Geoff
le 19 Mar 2012
So what if you divided each row of my result by its maximum value?
result = result ./ repmat( max(result,[],2), 1, size(result,2) );
Any row that is all zeros will become NaN, so:
result(isnan(result)) = 0;
Image Analyst
le 19 Mar 2012
raj, you're clear as mud. No one knows why only the -0.6 should give a 0.5, while all the others should give a 1. Explain it better if you can't solve it yourself and want us to solve it for you.
Voir également
Catégories
En savoir plus sur NaNs 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!