당신이하고 싶었던 모든 블록의 이름을 저장하는 경우, 예. 일부 데이터를 설명하는 이름을 원하는 경우에, 나는 구조가 같은 일 것이라고 생각합니다 :
data = struct([blkName 'Values'],[]);
set_param(gcb,'UserData',data);
그럼 당신은 당신이 사용하는 데이터를 얻을 때
ud = get_param(gcb,'UserData');
% ud.([blkName 'Values']) <- your data
또는 전역 appdata
스토리지를 사용할 수 있습니다 :
setappdata(0,[blkName 'Values'],data);
data = getappdata(0,[blkName 'Values']);
또는 원하는 이름을 가진 변수를 만들 수 런타임에 기능을 다시 작성할 수 용 Yick, 그러나 나는 비슷한 일을 겪어 보았다. HTH! 그러나 나는 응용 프로그램을 완전히 이해하지 않을 수 있습니다, 편집 UserData
내가 대화 콜백 여러 번 사용했던 방법이다, 그래서 나는 그것이 작동 할 것이라고 확신합니다. 당신이 모델을로드 할 때마다 유지하기 위해 데이터가 필요한 경우 :-)
편집 는, 당신은 'on'
에 UserDataPersistent
매개 변수를 설정해야합니다. 이것은 짜증나지만 당연히 모델이 닫히고 메모리에서 플러시 된 후 일어난 일을 잊어 버릴 지 여부를 선택하는 데 필요한 필수 기능입니다. 이것이 당신의 유스 케이스이기 때문에, m 스크립트의 persistent
변수는 Matlab이 종료 될 때 잊혀지기 때문에 작동하지 않습니다. Matlab 세션간에 지속되도록하려면 setpref과 같이 사용해야한다고 생각합니다.
블록에서 'UserData' 필드 사용을 고려 했습니까? 이것은 훨씬 더 강력한 솔루션이 될 것입니다. – macduff
@macduff 그래서'set_param (gcb, 'UserData', [blkName 'Values'])'같은 것을해야할까요? –