2016-07-13 3 views
0

MATLAB은 다음과 같은 의사 C 유사 코드와 같은 변수를 정의 할 수 있습니까?MATLAB은 중첩 된 변수 범위를 지원합니까?

{ 
    int a = 0; 
    int b, c; 
    { 
     int a = 42; 
     b = a; 
    } 
    c = a; 
} 

중첩 된 함수를 사용하여이를 '시뮬레이션'할 수 있습니다. 함수를 사용하지 않고이 작업을 수행 할 수 있습니까?

내가 MATLAB로 변환하고 싶었던 C 코드가 있기 때문에이 질문을했습니다. 중첩 된 변수 선언을 MATLAB으로 변환하는 방법에 대해 궁금합니다.

고맙습니다.

+0

나는 그 목적을 이해하지 못한다. – excaza

+0

중첩 된 함수로도이 작업을 수행 할 수 있습니까? – beaker

+0

중첩 된 함수로이 작업을 수행하는 유일한 방법은 중첩 함수에 매개 변수로'a'를 전달하는 것입니다. 그렇지 않으면 부모의'a'를 사용할 것입니다. – beaker

답변

3

직접하려는 것은 불가능합니다. 다행히도 비슷한 이름의 변수가있는 곳의 코드를 읽고 적절하게 유지 관리하기가 어렵 기 때문에 이는 아마도 괜찮을 것입니다.

{ 
    int a = 0; 
    int b, c; 
    { 
     int a = 42; 
     b = a; 
    } 
    c = a; 
} 

이 (MATLAB에서) 될 것입니다 : 가장 간단한 해결책은 변수의 이름을 변경하는 것

a = 0; 
d = 42; 
b = d; 
c = a; 

"내부"a와 "외부"a 다른 일을하고있다, 당신은 더 할 것입니다 경우 그 (것)들에게 다른 이름을주고 해를 입히고, 아마 나중에 누군가에게 유지 보수의 악몽을 줄 수도 있습니다.

+0

ㅎ. 내가 만든 가장 쉬운 "아니오"대답. –