2012-09-22 5 views
0

matlab에서 여러 모듈러스와 해당 나머지를 허용하는 함수를 만들려고합니다. 그러면 주어진 모듈러스 조건에 맞는 최소 가능한 값이 결정됩니다. 주요 문제는 matlab에 mod() 및 rem() 내장 함수를 사용할 수 없다는 것입니다. 이걸로 나를 도울 수 있니?최소 가능 조건 (Modulo) 조건에 의해 설명 된 값 MATLAB

+0

올바르게 이해하면 중국 잉여 이론을 구현해야합니까? – Maurits

+1

숙제입니까? – Oli

+0

@Maurits 네, 중국 잉여 정리입니다. – dmfrl

답변

1

쉽게 modrem를 사용하지 않고 사용자 정의 my_modmy_rem 함수를 만들 수 있고, 당신이 modrem를 사용 하듯이 이러한 사용할 수 있습니다.

function modulus = my_mod(X, Y) 
if isequal(Y, 0) 
    modulus = X; 
elseif isequal(X, Y) 
    modulus = 0; 
elseif (isequal(abs(X), Inf) || isequal(abs(Y), Inf)) 
    modulus = NaN; 
else 
    modulus = X - floor(X./Y) .* Y; 
end 
return 

function remainder = my_rem(X, Y) 
if isequal(Y, 0) 
    remainder = NaN; 
elseif isequal(X, Y) 
    remainder = 0; 
elseif (isequal(abs(X), Inf) || isequal(abs(Y), Inf)) 
    remainder = NaN; 
else 
    remainder = X - fix(X./Y) .* Y; 
end 
return