私は matlab で電卓を作成しています。sin ボタンが押されたときに、編集ボックスから最後の入力番号を取得し、sin() ブラケットに入れたいと考えています。どうやってするか?数時間検索しましたが、何も見つかりませんでした。
sin ボタンのコードは次のようになります。
% --- Executes on button press in pushbutton40.
function pushbutton40_Callback(hObject, eventdata, handles)
inpfieldtxt = get(handles.edit1,'string');
if(strcmp(inpfieldtxt,'0.')==1)
set(handles.edit1,'String','sind(');
else
inpfieldtxt=strcat(inpfieldtxt,'sind(');
set(handles.edit1,'String',inpfieldtxt)
end
「sind(」を編集ボックスに挿入するだけで、数字と閉じ括弧「)」を手動で入力する必要があります。
このボタンを Windows 7 電卓の sin ボタンとして反応させたいです。また、最後の番号を取得し、それをsin(ここ)に入れます。
わかった!ここに解決策があります:
% --- Executes on button press in pushbutton40.
function pushbutton40_Callback(hObject, eventdata, handles)
inpfieldtxt = get(handles.edit1,'string');
if(strcmp(inpfieldtxt,'0.')==1)
set(handles.edit1,'String','sind(');
else
isNumber = (inpfieldtxt >= '0') & (inpfieldtxt <= '9');
i=length(inpfieldtxt);
while (i > 0) && (isNumber(i))
if isNumber(i)
i = i-1;
end
end
lastnmb = inpfieldtxt(i+1:end);
inpfieldtxt = inpfieldtxt(1:i);
set(handles.edit1,'String',[inpfieldtxt,'sind(',lastnmb,')']);
end
助けてくれてどうもありがとう!