2014-05-20 3 views
1

홀수 정수를 계산하려면 어떻게 모듈러스 함수를 사용합니까?MATLAB : 홀수 정수를 합산하기위한 모듈러스 함수

나는 이상한 정수를 볼 수는 있었지만 함께 모을 수는 없었다. 내가 제대로 질문을 해석하고 경우

+1

이유의 단계로 함수 단계를 가서 보자 :

의이 간단한 예를하자 'sum'을 사용하십시오. 지나치게 복잡하게 된 '모드'에 대해서는 이해하지 못합니다. – Divakar

+0

@Divakar : 당신은 내 마음을 읽었습니다 : P – rayryeng

+0

@rayryeng 나는 이것을 사람들에게합니다. D – Divakar

답변

2

, 당신은 홀수 정수 합계를 계수 기능 을 사용하지 않지만, 당신은 당신이 홀수와 합을 결정 도움말을 계수 기능을 사용하려면 홀수 인 인 데이터 세트의 해당 숫자 만 입니다. 언뜻보기에 이것을 읽으면 모듈러스 함수 과 모듈러스 함수 만을 합계 값으로 사용하려는 것처럼 들리므로 혼란 스럽습니다.

data이라는 벡터에 정수가 있다고 가정 해 보겠습니다. 할 수있는 일은 정수가 홀수인지 여부를 확인하려는 경우 2로 나눈 나머지 값이 1 (즉, num mod 2 == 1)인지 확인합니다. 홀수의 정의를 생각해보십시오. 즉, 임의의 정수를 취할 수 있으며 숫자가 2k + 1으로 표시 될 수있는 정수 k을 찾을 수 있도록 나타냅니다. 따라서 2를 기본으로이 숫자의 모듈러스를 취하면 대답으로 1을 얻게됩니다. 이 은 음수에을 적용하지 않습니다. 모듈로 기능이 위치를 사용하여 데이터를 요약하면 1.

  • 을 제공 곳
    1. 은 모든 위치 찾기 :

      는, 이러한 내가 당신이 할 것을 제안하는 단계입니다. 여기

      function sumOdd = sumOddNumbers(data) 
      %// Step #1 
      ind = mod(data, 2) == 1; 
      
      %// Step #2 
      sumOdd = sum(data(ind)); 
      

      우리는 우리가 할 수 있도록하는 함수를 만들 : 여기

  • 내가 사용하는 것이 코드입니다. 함수에 입력으로 data을 지정하면 출력 (sumOdd)에 홀수의 합이 포함됩니다. 따라서이 코드를 가져와 새로운 .m 파일에 저장하십시오. 또한 전화 번호는 sumOddNumbers.m입니다. 다음으로 작업 디렉토리를이 파일을 저장 한 위치로 설정하십시오. 이제

    data = 1 : 10; %// Create an array going from 1 to 10 
    sumOdd = sumOddNumbers(data); %// Answer should be 25... why? 
    

    대답은 그냥 홀수 정수를 얻기 위해 인덱싱을 사용할 수있는 25

    ind = mod(data, 2) == 1; %// Should give us an array s.t. [1 0 1 0 1 0 1 0 1 0] 
    sumOdd = sum(data(ind)); %// Should sum over the following array [1 3 5 7 9] 
             %// Answer is 25 
    
    +0

    이제 알았습니다. 고맙습니다. 질문이 하나 더 있는데, 사용자 입력을 어떻게 처리할까요? – user3654953

    +0

    간단합니다. 그것을 기능으로 바꾸십시오. 내 게시물을 수정하겠습니다. – rayryeng

    +0

    감사합니다. 정말 감사. – user3654953