HOW TO FIND THE LOCAL MAXIMA FOR EVERY ROW IN A MATRIX
    조회 수: 3 (최근 30일)
  
       이전 댓글 표시
    
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
답변 (1개)
  Geoff
      
 2012년 3월 19일
        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
  Geoff
      
 2012년 3월 19일
				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
      
      
 2012년 3월 19일
				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.
참고 항목
카테고리
				Help Center 및 File Exchange에서 Assembly에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!