매트릭스가 있고 매트릭스 내의 특정 조건을 만족하는 값을 변경하는 데 관심이 있습니다 (위치에 따라 다름). 매트릭스 smallpic이 있다고 가정 해보십시오. 첫 번째 두 열의 50을 초과하는 모든 값을 255로 변경하고 세 번째와 네 번째 열의 값을 180으로 변경 한 동일한 크기의 행렬 smallPicB는 어떻게 얻을 수 있습니까? 매트릭스의 특정 영역에있는 논리적 인덱스에 따라 일부 값을 변경합니다.
나는 작품이 코드를 가지고 있지만, 그것은 꽤 추한하고 매트릭스를 분할하고 다시 합치가 필요합니다smallPic1=smallPic(:,1:2);smallPic1(smalllPic1>50)=255;
smallPic2=smallPic(:,3:4);smallPic2(smalllPic2>50)=180;
smallPicB = [smalllPic1 smalllPic2];
가 어떻게 하나의 명령에 스칼라 인덱스 논리적 인덱스를 결합 할 것인가? 이 smallPic와 같은 크기를 가지고 있지 않기 때문에 여기에
smallPic(:,smallPic(:,3:4)>50) = 180
는 괄호 안에 smallPic의 두 번째 언급 smallPic의 올바른 위치에 색인을 허용하지 않습니다
은 무엇 작동하지 않는 것은 이것이다 . 따라서이 명령은 실제로 세 번째 및 네 번째 열의 값을 대체하는 대신 세 번째 및 네 번째 열에서 50보다 큰 값과 같은 행에있는 smallPic의 처음 두 열의 값을 대체합니다.
다른 제안 사항이 있으십니까?
편집에 대한 이유 : 그래서 모든 멤버의 열 인덱스를 저장하는 J를 정의했습니다. – saastn