0

タイトルにあるように、MatlabのGUIDEツールボックスを使用しています。まず、スライダーの両端に左/右の矢印を表示する方法を知りたいですか?

また、スライダーを1秒ごとに自動的に移動させるにはどうすればよいですか?

私が理解している限り、最初にタイマーオブジェクトを作成し、実行モードと期間を次のように設定する必要があります。

time = timer;
set(time,'executionMode','fixedRate','period',1);

これで、timerFcnを次のように設定する必要があることがわかりました。

set(handles.slider1,'Value',x); 

スライダーの位置を変更するため。

また、最初にx変数をスライダーステップ(私の場合は0.00520833)でインクリメントする必要があることも理解しています。例えば:

x = x + 0.00520833;

だから私は次のようないくつかのコードを持っています:

time = timer;
set(time,'executionMode','fixedRate','period',1);
time.timerFcn = set(handles.slider1,'Value', x = x + 0.00520833); 
start(time);

しかし、これはうまくいきません。私がやっているのは愚かなことのせいだと確信しています。

ありがとう!

編集:

これで、スライダーを1秒ごとに移動できますが、代わりに自分の関数を1秒ごとに実行したいと思います。例えば:

time.timerFcn = @slider_increment;

function slider_increment

set(handles.slider1,'Value', get(handles.slider1,'Value') + 0.00520833)

slider = get(handles.slider1,'Value');
set(handles.text4,'String', slider);

これは少し面倒ですが、後で並べ替えます。私が直面している問題は、ガイドによって作成されたGUIスクリプト内で自分の関数を宣言し、関数がGUIオブジェクトのハンドルにアクセスできるようにする方法です。

4

1 に答える 1

0

まず、これ

time.timerFcn = set(handles.slider1,'Value', x = x + 0.00520833); 

間違いなくエラーが発生します...

私はあなたがこのようなものが欲しいと思います:

h = uicontrol;

time = timer;
set(time,'executionMode','fixedRate','period',1);

%Note: set(h,val,get(h,val) + change)
time.timerFcn = @(x,y)set(h,'position', get(h,'position') + 10);

start(time);
于 2012-11-21T16:43:09.507 に答える