내 변수 중 하나 인 "주석"및 내장 된 MATLAB 함수 "주석"과 MATLAB 이름 충돌이있는 것 같습니다.MATLAB 이름 충돌 : "잘못된 인수 수"
내 함수에서 변수 주석이 들어있는 .mat 파일을로드하고 다른 함수의 인수로 사용하려고합니다. 지금
function test()
filenames = { 'file1.mat', 'file2.mat', 'file3.mat' };
for i = 1:numel(filenames)
in_file = char(filenames{i});
out_file = strrep(in_file, '.mat', '_out.mat');
prepare(out_file); % do something with the out file
load(out_file); % contains one variable named "annotation"
which annotation % just to be sure
other_function(annotation);
end
end
function prepare(filename)
annotation = rand(25, 1);
save(filename);
end
function other_function(annotation)
whos % just a stub - see whether it has been called
end
을 내 기능에 나는 파일이 "주석"라는 이름의 변수를 포함 확신했다 준비 : 최소한의 작업 예는 다음과 같습니다. 나는 주요 기능의 루프를로드 할 때 "어떤"명령은 변수로 존재하지만 other_function의 호출에, MATLAB 함수 "주석"호출하려고 나에게 말한다 :
주석이 변수입니다 .
??? 오류 사용 ==> 14
other_function(annotation);
내가 변수 이름 "주석"을 사용하고 있기 때문에 나는 혼란 스러워요에서 71
충분하지 않은 입력 인수 ==에
오류> 시험에서 주석 내 프로그램의 여러 부분에서 함수 호출의 매개 변수로도 사용됩니다. 내가 상상할 수있는 유일한 설명은 MATLAB이 어떻게 든 내 코드를 사전 컴파일합니다. "컴파일 할 때"변수 "주석"이 보이지 않습니다. 그러나 런타임에 "which"명령의 출력에서 볼 수있는 것처럼 발견됩니다.
도움이 될 것입니다. 미리 감사드립니다.
참고 : MATLAB 7.12.0 (R2011a)을 사용하고 있습니다.
, 당신의 변수 annotation.Well의 이름을 변화 할 수있는 모든, 나는 주석을 볼 수 없습니다 귀하의 코드에서 변수로 선언했다. Matlab을 이해함에 따라 스크립트 언어이기 때문에 묻지 않고 모든 내용을 덮어 씁니다. 당신은 디버거로 throuhg 가서 "무엇"에서 주석 내부에 있는지 볼 수 있습니까? –
디버거는 주석이 변수라고 말하고 디버거에'annotation'을 입력하면 오류없이 평가할 것입니다. – Richante