空白の GUI から始めて、単純にプッシュボタン (「btnTest」としてタグ付け) を追加すると、次のコードが正常に機能します。
%% --- Executes on button press in btnTest.
function btnTest_Callback(hObject, eventdata, handles)
%[
changeName(handles);
%]
%% --- Inner function
function [] = changeName(handles)
%[
set(handles.btnTest, 'String', 'toto');
%]
したがって、おそらくコードに何か問題があります。
「handles」構造を「changeName」関数に渡さない場合 (つまり、ハンドルをグローバルに使用できるようにする場合)、次のようにできます。
%% --- Executes on button press in btnTest.
function btnTest_Callback(hObject, eventdata, handles)
%[
changeName();
%]
%% --- Inner function
function [] = changeName()
%[
handles = guihandles(); % recover handles for current figure
set(handles.btnTest, 'String', 'toto');
%]
ただし、「ハンドル」を直接渡すよりもはるかに遅くなります。