2017-10-14 9 views
0

제가 아래의 예에서와 같이 논리 인수의 행렬을 다시 시도는 : 개혁 행렬

a=rand(2,5) 
b=rand(2,5) 
c=a>b 

a(:,c)=b(:,c) 

그러나 제가 Index exceeds matrix dimension 오류. 미리 매트릭스를 재구성하지 않고도이 작업을 수행 할 수 있습니까?

+0

나는 a (c) = b (c)'를하고 싶었다. 비 임의의 정확한 입력과 그 입력에 대한 예상 출력을 제공하면 질문보다 현재의 질문이 더 명확 해집니다. –

답변

0

각 항목의 시도에 대한에 ab 사이의 최소 값을 복사하려면 다음

a=rand(2,5); 
b=rand(2,5); 


c = find(a>b); % c contains the position of value of the greatest val 
a(c)=b(c) % removes greates value copying a smaller value from b 

당신이 가장 큰 값이 변수 c을 만드는 문을 수정 복사합니다.

Index exceeds matrix dimensions: 및 행렬 c을 매트릭스 차원으로 사용하려고했기 때문에 발생합니다. Find는 원하는 관계를 만족시키는 값 목록을 작성하고 특정 값을 다시 호출하는 데 사용될 수 있습니다.