나는 상수와 문자열의 정의를 기본적으로 포함하고있는 스크립트를 호출하는 중첩 된 함수를 가지고있다. 이러한 변수를 기본 작업 영역에 전달해야합니다. 나는 그것들을 최상의 해결책이 아닌 global
으로 정의 할 수 있다는 것을 안다, 그렇지?여러 변수에 assignin을 사용하는 방법은 무엇입니까?
함수의 출력 인수를 사용하는 일반적인 방법은 필자의 경우 너무 복잡해 보인다. (실제로는 단지 한 번만 호출하므로 코드를 날려 버리지는 않습니다.) 따라서 assignin
과 who
을 사용하려고 생각했지만 셀 배열이나 쉼표로 구분 된 목록에서는 작동하지 않습니다. 아마도 필자는 일부 구문 수정을 누락했을 것입니다.
function myFunction()
myScriptWithDefinitions;
% who returns a cell array with all variables from my script
temp = who;
% now I try to assign these variables to my base workspace
% these are my attempts, none of them working
assignin('base',who);
assignin('base',temp{:});
assignin('base',{temp{:}});
...
end
필자는 필연적으로 이름 목록과 값 목록을 모두 전달해야한다는 것을 알고 있습니다. 추가 아이디어가 있으십니까?
편집 :
assignin('base',{'A','B'},{2,5})
% or
assignin('base',{'A',2},{'B',5})
같은 작동하지 않습니다, 그래서 일반적으로 assignin
이 옵션을 선택하지 않습니다 같아요.
그냥 함수의 이름은 assignin이며 세 번째 매개 변수가 있어야합니다 : assignin (ws, 'var', val); 하지만 여전히 질문에 대한 해결책을 찾지 못했습니다 ... –
네, 고마워요. – thewaywewalk