2014-01-23 1 views
1

배열의 특정 번호를 다른 배열의 해당 위치 번호로 바꾸는 함수를 작성하려고합니다. 그러나, 나는 그렇게 할 수 없다. 나는 MATLAB을 사용하는 것에있어서 아주 새로운 것이다. 어떤 도움을 주시면 감사하겠습니다.특정 배열 번호를 다른 배열의 해당 위치 번호로 바꾸기

arr1 = [ 
    1  3  8  9 
    2 47 10  4 
    2  4  6 86 
    6  8 11  4]; 

arr2 = [ 
    3 4 1 8 
    8 2 99 1 
    0 6 77 11 
    9 3 2 1] 

는 그 인덱스의 arr2의 수와 arr1의 특정 번호를 대체하는 함수를 작성합니다. 내가 arr1에서 2을 대체한다고 가정, 출력이 나를 그렇게 할 수 있습니다

out = [ 
    1  3  8  9 
    8 47 10  4 
    0  4  6 86 
    6  8 11  4]; 

arr1(arr1==2) = arr2(arr1==2) 

해야한다. 그러나 그것은 나를 arr1의 수를 대체 할

function new = arrayReplace(arr1,arr2,number) 
    idx = arr1==number; 
    new = (arr1(idx)=arr2(idx)); 
end 

같은 일반화 함수를 작성하는 것을 허용하지 않습니다.

도움이 필요하십니까?

답변

3

당신은 거의 다 : 아마도 덜 혼란

function arr1 = arrayReplace(arr1,arr2,number) 
    idx = arr1==number; 
    arr1(idx) = arr2(idx); 
end 

또는 :

function arr3 = arrayReplace(arr1, arr2, number) 
    idx = arr1==number; 
    arr3 = arr1; 
    arr3(idx) = arr2(idx); 
end 
+0

감사합니다! 작은 실수로 코드를 쳐다 본 2 시간 만 낭비했습니다. – user3226108

관련 문제