저는 Matlab로 작성된 일부 코드를 독립형의 컴파일 된 Matlab 응용 프로그램으로 변환하려고합니다. 그러나 이상한 오류가 발생하면 코드에서 여러 번 사용 된 동일한 이름 (그러나 다른 결과/계산)을 가진 여러 함수가 있음을 알리기 위해 경로에서 추가 및 제거를 많이 사용합니다. 주위를 둘러 보니 이름 앞에 "+"를 삽입하고 패키지의 기능이 name_of_folder.name_of_function
을 사용하여 서로 참조되는지 확인하여 폴더를 패키지로 만들 수 있음을 발견했습니다. 이것은 네임 스페이스 문제를 해결하지만 잠재적으로 많은 작업을 만듭니다. 이제는 각 함수 호출에 올바른 패키지를 추가해야합니다. (그리고 많은 파일을 복제해야 할 수도 있습니다.)Matlab의 가져 오기 기능의 범위는 무엇입니까?
그렇다면 import
기능을 보았고 시간을 절약 해 주길 바랍니다. 하나 또는 두 개의 특정 함수에 원하는 패키지를 전달하고 해당 함수를 패키지를 가져온 다음 해당 함수가 호출하는 함수가 해당 import 문의 범위에 속하면 원하는대로 작동 할 것이라고 생각합니다. 내가
function foo(var1, var2, ..., packagename)
eval(sprintf('import %s.*', packagename));
...
bar1(var1, var2);
...
bar2(var2);
...
같은 것을 설정 한 경우 예컨대, 그럼 내가 가져 오기 문을 가져온 패키지를 사용합니다
bar1
및
bar2
를 희망하고있다. 문서에 따르면 조건문과 함수의 import 문은 해당 코드 블록으로 제한되어 있지만 "해당 코드 블록"은 해당 텍스트 만 또는 "해당 코드 블록"이 코드 및 평가되는 모든 것을 의미하는지 여부를 알지 못합니다 그 결과로 나는 그것이 전 (前者)이라는 느낌을 가지고 있지만, 나는 그것이 후자임을 희망하면서 묻습니다.
그래서 import 문 범위는 무엇입니까? 또는이 문제를 해결할 다른 방법이 있습니까?