Я хотел бы получать данные из обратного вызова без использования глобальных переменных в MATLAB. Это не для программирования GUI, а для использования rossubscriber
. Я попытался следующим:Получение данных из обратного вызова
function [mySub] = myFunction(cloudTopic)
testHandle.a = 0;
mySub = rossubscriber(cloudTopic,{@mySub_CB,testHandle}, 'BufferSize', 30);
end
function mySub_CB(src, msg, objHandle)
objHandle.a = objHandle.a + 1
end
, потому что я прочитал это на The MathWorks документации
Примечание: Есть другие способы извлечения информации из обратного вызова функции помимо использования глобал. Например, вы можете передать объект в качестве дополнительного аргумента функции обратного вызова. Дополнительную информацию об определении функций обратного вызова см. В документации по определению обратного вызова 10.
К сожалению, это изделие не работает. testHandle не обновляется и 1 постоянно отображается. Как это сделать правильно? :)