Main Content

export2wsdlg

変数をワークスペースにエクスポートするためのダイアログ ボックスの作成

説明

export2wsdlg(labels,vars,vals) は、一連のチェック ボックスおよび編集フィールドをもつモーダル ダイアログ ボックスを作成します。各チェック ボックスには、対応する編集フィールドがあります。引数は、次のようになります。

  • labels – チェック ボックスのラベル。

    ラベルの数によって、ダイアログ ボックスに表示されるチェック ボックスと編集フィールドの数が決まります。各チェック ボックスのラベルの後に 1 つの編集フィールドが表示されます。例を示します。

    Check box with label "Save sum of A to variable named:" followed by an edit field with text "sumA". There is no check box.

  • vars – 前のイメージに示す sumA のように、編集フィールドに表示される既定の変数名。

  • vals – 変数に格納する値。

labelsvars および vals は同じ項目数を指定しなければなりません。labelsvars および vals がそれぞれ 1 つの項目を指定した場合、そのダイアログ ボックスには 1 つのラベルと 1 つの編集フィールドのみが表示されます。以下に例を示します。

Label with text "Same sum of A to variable named:" followed by an edit field with text "sumA"

export2wsdlg(labels,vars,vals,title) はダイアログ ボックスのタイトルを指定します。

export2wsdlg(labels,vars,vals,title,defs) は、ダイアログ ボックスが開いたときにオンになっているチェック ボックスを指定します。

export2wsdlg(labels,vars,vals,title,defs,helpfcn)[ヘルプ] ボタンをダイアログ ボックスに追加します。helpfcn はヘルプを表示するコールバックです。

export2wsdlg(labels,vars,vals,title,defs,helpfcn,flist) は、vars にエクスポートする値を計算してから返す関数およびオプション引数からなる cell 配列を指定します。flist を指定した場合、MATLAB®vals の代わりにこれを使用します。ただし、vals 引数を構文プレースホルダーとして指定しなければなりません。flistlabels と同じ長さでなければなりません。

f = export2wsdlg(___) は、ダイアログ ボックスが表示される Figure オブジェクトを f に返します。この出力は、前述の構文に示した任意の入力引数の組み合わせを使用して要求できます。

[f,tf] = export2wsdlg(___) は、ユーザーが [OK] をクリックした場合に tf1 (true) として返し、ユーザーが [キャンセル] またはダイアログ ボックスのタイトル バーの閉じるボタン (X) をクリックしてダイアログ ボックスを閉じた場合に 0 を返します。tf が 0 の場合、f は空の配列 ([]) として返されます。関数 export2swdlg はユーザーがダイアログ ボックスを閉じるまで戻りません。

すべて折りたたむ

変数 sumA または meanA のいずれか、あるいは両方をベース ワークスペースに保存できるダイアログ ボックスを作成します。

A = randn(10,1);
labels = {'Save sum of A to variable named:' ...
          'Save mean of A to variable named:'}; 
vars = {'sumA','meanA'}; 
values = {sum(A),mean(A)};
export2wsdlg(labels,vars,values);

Export to Workspace dialog box. The dialog box contains a check box with label "Save sum of A to variable named:" followed by an edit field with text "sumA", another check box with label "Save mean of A to variable named:" followed by an edit field with text "meanA", an OK button, and a Cancel button. Both check boxes are selected.

ユーザーが 2 などの無効な変数名を入力して [OK] をクリックすると、MATLAB は自動的にエラー ダイアログ ボックスを返します。ユーザーはエラー ダイアログ ボックスの [OK] をクリックした後に、[ワークスペースにエクスポート] ダイアログ ボックスに有効な変数を入力することができます。

Error dialog box with message "'2' is not a valid MATLAB variable name."

入力変数 defs を定義して、ダイアログ ボックスが開いたときのすべてのチェック ボックスをオフに指定します。

A = randn(10,1);
labels = {'Save sum of A to variable named:' ...
          'Save mean of A to variable named:'}; 
vars = {'sumA','meanA'}; 
vals = {sum(A),mean(A)};
title = ('Save Sums to Workspace');
defs = logical([0 0]);
export2wsdlg(labels,vars,vals,...
             title,defs);

Save Sums to Workspace dialog box. The dialog box contains a check box with label "Save sum of A to variable named:" followed by an uneditable edit field with text "sumA", another check box with label "Save mean of A to variable named:" followed by an uneditable edit field with text "meanA", an OK button, and a Cancel button. No check boxes are selected.

すべてのチェック ボックスがオフのときにユーザーが [OK] をクリックした場合、MATLAB は自動的にエラー ダイアログ ボックスを返します。ユーザーはエラー ダイアログ ボックスの [OK] をクリックした後に、[ワークスペースにエクスポート] ダイアログ ボックスでエラーを修正することができます。

Error dialog box with message "You must check a box to export variables"

コールバックの入力引数を指定して、[ヘルプ] ボタンをダイアログ ボックスに追加します。[ヘルプ] ボタンをクリックすると、コールバックが実行されます。このコードのコールバック関数は smhelp で、ヘルプ ダイアログ ボックスを作成します。詳細については、プログラムで作成したアプリ用のコールバックの作成を参照してください。

function expsm
A = randn(10,1);
labels = {'Save sum of A to variable named:' ...
          'Save mean of A to variable named:'}; 
vars = {'sumA','meanA'}; 
vals = {sum(A),mean(A)};
title = ('Save Sums to Workspace');
defs = logical([1 0]);
export2wsdlg(labels,vars,vals,...
             title,defs,{@smhelp});
         
    function smhelp
        helpdlg({'Select one or both check boxes.',...
                 'Change the variable names, if desired,',...
                 'and then click OK.'});
    end
 end 

この例を実行するには、上記のコードをコピーしてテキスト エディターに貼り付けます。MATLAB パス上のフォルダーにこのファイルを exspm.m として保存します。コードを実行して [ヘルプ] ボタンをクリックすると、[Save Sums to Workspace] ダイアログ ボックスより前面にヘルプ ダイアログ ボックスが開きます。次の図に、これらの 2 つのダイアログ ボックスを並べて示します。

On the left is a Save Sums to Workspace dialog box with three buttons: OK, Cancel, and Help. On the right is a help dialog box.

figure オブジェクトを作成してワークスペースにエクスポートするためのダイアログ ボックスを作成します。ユーザーが該当するチェック ボックスをオンにして [OK] をクリックしたときに、指定した色で Figure ウィンドウを作成する関数リストを指定します。入力引数 vals は単なる構文プレースホルダーです。そのため、vals の値で指定された cell 配列の項目は使用されません。

labels = {'Red Figure Window',...
          'Blue Figure Window',...
          'Green Figure Window'};
vars = {'fRed','fBlue','fGreen'};
vals = {0,0,0};
title = 'Figure Color Samples';
defs = [false false false];
flist = {{@figure,'color','r'},...
         {@figure,'color','b'},...
         {@figure,'color','g'}};
export2wsdlg(labels,vars,vals,title,defs,{@doc,'figure'},flist);

Figure Color Samples dialog box. There are three export options: Red Figure Window, Blue Figure Window, and Green Figure Window. Each option has an unselected check box and an uneditable edit field with a variable name. There are three buttons: OK, Cancel, and Help.

ユーザーがチェック ボックスをオンにして [OK] をクリックした後に、MATLAB はオンになっているチェック ボックスについて以下を実行します。

  • 対応する関数を実行する (各関数が Figure を作成する)。

  • figure オブジェクトを変数 vars に返す。

  • 変数をベース ワークスペースにエクスポートする。

入力引数

すべて折りたたむ

チェック ボックスのラベル。文字ベクトルの cell 配列または string 配列として指定します。配列にある項目が 1 つのみの場合、export2wsdlg はチェック ボックスの代わりに編集フィールドを作成します。labelsvarsvals および defs の長さはすべて同じでなければなりません。

例: {'Temperature (Celsius)','Mass (Grams)'}

ダイアログ ボックスが開いたときに編集フィールドに既定で表示される編集フィールドの変数名。文字ベクトルの cell 配列または string 配列として指定します。配列の要素数は、labels に指定された数と同じです。labelsvarsvals および defs の長さはすべて同じでなければなりません。

vars 内の変数名は、一意でなければなりません。

編集フィールドに表示される変数名をユーザーが編集できるダイアログ ボックスです。ユーザーが複数の編集フィールドに同じ名前を指定した場合、MATLAB はその名前を使用して構造体を作成します。次に、defaultvars の項目をその構造体のフィールド名として使用します。

例: {'Longitude','Latitude'}

変数の値。cell 配列として指定します。labelsvarsvals および defs の長さはすべて同じでなければなりません。

例: {100,200}

例: {sin(A),cos(A)}

ダイアログ ボックスのタイトル。文字ベクトルまたは string スカラーとして指定します。

例: 'Save to Workspace'

既定のチェック ボックスの選択。logical 配列として指定します。labelsvarsvals および defs の長さはすべて同じでなければなりません。

既定では、ダイアログ ボックスが開いたときに、すべてのチェック ボックスがオンになっています。

例: [true, false] はダイアログ ボックスが開いたときに、最初のチェック ボックスがオン、2 番目のチェック ボックスがオフであることを指定します。

[ヘルプ] ボタンのコールバック。関数ハンドル、cell 配列、または文字ベクトル (非推奨) として指定します。[ヘルプ] ボタンのコールバックを指定した場合、MATLAB は [ヘルプ] ボタンをダイアログ ボックスに追加します。詳細については、プログラムで作成したアプリ用のコールバックの作成を参照してください。

例: @myfun はコールバック関数を関数ハンドルとして指定します。

例: {@myfun,x} はコールバック関数を cell 配列として指定します。この場合、この関数は入力引数 x を受け入れます。

関数呼び出しのリスト。エクスポートする値を計算してから返す関数の名前とオプション引数からなる cell 配列として指定します。flistlabels と同じ長さでなければなりません。

例: {{@myfun1,x},{@myfun2,x,y}}

出力引数

すべて折りたたむ

ダイアログ ボックスを表示する Figure オブジェクト。2 つの戻り引数が要求された場合、f は空の配列 [] として返され、関数 export2wsdlg はユーザーがダイアログ ボックスを閉じるまで値を返しません。

true または false の結果。1 または 0 として返されます。この関数はユーザーが [OK] ボタンをクリックした場合は 1 (true) を返し、それ以外の場合は 0 を返します。関数 export2wsdlg はユーザーがダイアログ ボックスを閉じるまで値を返しません。

詳細

すべて折りたたむ

モーダル ダイアログ ボックス

モーダル ダイアログ ボックスでは、モーダル ダイアログ ボックスに応答する前に他の MATLAB ウィンドウを操作することができません。

ヒント

  • MATLAB プログラムの実行は、モーダルの [ワークスペースにエクスポート] ダイアログ ボックスがアクティブであっても続行されます。ユーザーがダイアログ ボックスを閉じるまでプログラムの実行をブロックする場合は、関数 uiwait を使用します。

バージョン履歴

R2006b で導入