2

ユーザーが値を入力せずに入力ダイアログボックスを直接閉じないようにするにはどうすればよいですか? 「メニュー」機能の場合、選択されていないオプションに対して while options==0 を使用してループを形成できますが、入力ダイアログはどうですか?

prompt = {'ゲインを入力してください:','範囲を入力してください:'};

dlg_title = '値を入力';

行数 = 1;

def = {'20','256'}; %デフォルト

答え = inputdlg(prompt,dlg_title,num_lines,def);

%%%入力された 2 つの値を取得する%%%%

%A = getfield(回答,{1}); %最初の入力フィールド

A = str2double(回答{1});

%B = getfield(回答,{2}); %second 入力フィールド

B = str2double(答え{2});

示されているような入力ダイアログがあるとします。ループを使用して完全にモデル化する方法

4

1 に答える 1

1

閉じられるのを防ぐことはできませんが、while ループを使用して、ユーザーが有用な値を入力するまで再び開くことができます。

done = false;
while ~done
    a=inputdlg('enter a number')
    num = str2double(a{1}); %# will turn empty and strings into NaN
    if isnumeric(num)
       done = true;
    else
       %# keep running while loop
       %# you can pop up an errordlg box here to tell the user what was wrong.
       %# It would be nice if you were to set the inputs that passed the test
       %# as defaults for the next call of inputdlg. Nothing sucks as much 
       %# as having to completely re-fill a form because of a small typo
    end
end
于 2012-12-29T04:00:46.540 に答える