matlab sliderとeditコントロール

2089 ワード

久しぶりにmatlabを使って、アルゴリズムを開発するのはどんなに友好的で、どんなに効率的ですか~!matlabはおもちゃだ
本題に戻り、guiに必要な3つの要素を話します:slider、edit、figure
matlabでguiを書くのは、その便利さをむさぼるために、最も簡単なコードで走るアルゴリズムに適したインタフェースを作るためで、この3つのものはちょうどこの意味に合っています:sliderあるいはeditリアルタイム調整アルゴリズムパラメータを通じて、figureリアルタイムで調整後の結果を描き、editリアルタイム印刷演算の結果
sliderの使い方:
まずコントロールプロパティを使用すると、sliderの最大/最小値を変更し、ステップ長を調整できます.しかし、調整ステップは最大値1で計算され、SliderStepが0.01のように100セグメントを表し、最大値が100であればステップ長が1、最大値が300であればステップ長が3となるように...
slider調整のステップ長は浮動小数点数であり、sliderの右矢印を押すと、増加した数値は小数であり、整数数が必要な場合は、sliderのcallbackでgetからの値を強制的にタイプ変換することができます.
sliderValue = get(handles.slider1,'Value');
ang = int32(sliderValue);
set(handles.slider1,'Value',ang);

sliderコントロールのCallbackの一般的な書き方:
function slider1_Callback(hObject, eventdata, handles)
sliderValue = get(handles.slider1,'Value');
set(handles.slider1,'Value',sliderValue);
func(sliderValue);%          
guidata(hObject,handles);
sliderを変更すると、sliderValueの値がリフレッシュされ、funcが呼び出されます.
また、Callbackに追加するだけで、editコントロールでsliderの値を表示することもできます.
set(handles.edit1,'String', num2str(ang));
edit 1は自己作成
editの使い方:
editの使い方は大同小異である
function edit1_Callback(hObject, eventdata, handles)
sliderValue=get(handles.edit1,'String');
sliderValue=str2num(sliderValue{1});
if (isempty(sliderValue) || sliderValue < 0 || sliderValue > 360)
    set(handles.slider1,'Value',0);
    set(handles.edit1,'String','0'); 
else
    set(handles.slider1,'Value',sliderValue);
end
最初にgetされたsliderValueはcellでありstr 2 numではsliderValue{1}の形式で使用されることに注意してください.
次のif文は入力値が合法かどうかを判断するので、私はここで角度値を入力するので、360を超えることはできません.
figureの使い方:
gui実行中、いったん確立されるとずっと存在し、どこで確立されても便利になり、自分が書いた関数に図を描き、戻るときに画像(figure)が依然として存在する.そして画像の更新に注意し、更新が必要な箇所を追加します.
hold off;
前回の結果を保留したい
hold on;

まとめ:guiにはパラメータの設定、テキストの表示の簡単なコントロールのみが含まれており、画像を表示するタスクはfigureに渡されます.