Main Content

export2wsdlg

创建用来将变量导出到工作区的对话框

说明

示例

export2wsdlg(labels,vars,vals) 用一系列复选框和编辑字段创建一个模态对话框。每个复选框都有一个对应的编辑字段。参数如下:

  • labels - 复选框的标签。

    标签数量决定对话框中出现多少个复选框和编辑字段。每个复选框标签后面都会出现一个编辑字段,例如:

    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 - 要存储在变量中的值。

labelsvarsvals 指定的项目数量必须相同。如果 labelsvarsvals 都指定一个项目,对话框将只显示一个标签和一个编辑字段。例如:

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 的值。如果您指定了 flist,MATLAB® 将使用它而不是 vals。但是,您必须将 vals 参数指定为语法占位符。flist 的长度必须与 labels 相同。

f = export2wsdlg(___) 将显示对话框的 Figure 对象返回给 f。您可使用上述语法中的任何输入参数组合来请求此输出。

如果用户点击确定 [f,tf] = export2wsdlg(___)tf 返回为 1 (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),然后点击确定,MATLAB 将自动返回错误对话框。点击错误对话框中的确定后,用户有机会在“导出到工作区”对话框中输入有效的变量名称。

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.

如果用户在未选中复选框时点击确定,MATLAB 将自动返回错误对话框。点击错误对话框中的确定后,用户有机会在“导出到工作区”对话框中更正错误。

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

通过指定回调输入参数,在对话框中添加帮助按钮。点击帮助按钮将运行该回调。在下面这段代码中,回调函数是 smhelp,使用它创建一个“帮助”对话框。有关详细信息,请参阅Create Callbacks for Apps Created Programmatically

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 

要运行此示例,请将上面的代码复制并粘贴到文本编辑器中。将文件另存为 exspm.m 并保存到 MATLAB 路径上的文件夹中。当您运行代码并点击帮助按钮时,“帮助”对话框将在 Save Sums to Workspace 对话框之上打开。下图将两个对话框并排显示。

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.

创建一个对话框,以创建图窗对象并导出到工作区。指定当用户选中相应的复选框时用来按指定颜色创建图窗窗口的函数列表,然后点击确定vals 输入参数只是一个语法占位符。因此,vals 值指定的元胞数组项并未使用。

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.

在用户选中复选框并点击确定后,MATLAB 将对所选复选框执行以下操作:

  • 运行相应的函数(每个函数创建一个图窗)

  • 将图窗对象返回到 vars 变量

  • 将变量导出到基础工作区。

输入参数

全部折叠

复选框标签,指定为字符向量元胞数组或字符串数组。如果数组中只有一个项目,export2wsdlg 将创建一个编辑字段而不是复选框。labelsvarsvalsdefs 的长度必须全部相等。

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

打开对话框时默认显示在编辑字段中的编辑字段变量名称,指定为字符向量元胞数组或字符串数组。数组元素的数量与 labels 中指定的数量相同。labelsvarsvalsdefs 的长度必须全部相等。

vars 中的变量名称必须唯一。

对话框用户可以编辑显示在编辑字段中的变量名称。如果用户在多个编辑字段中指定相同的名称,MATLAB 将使用该名称创建一个结构体,然后使用 defaultvars 项作为该结构体的字段名称。

示例: {'Longitude','Latitude'}

变量值,指定为元胞数组。labelsvarsvalsdefs 的长度必须全部相等。

示例: {100,200}

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

对话框标题,指定为字符向量或字符串标量。

示例: 'Save to Workspace'

默认复选框选择,指定为逻辑数组。labelsvarsvalsdefs 的长度必须全部相等。

默认情况下,对话框打开时会选中所有复选框。

示例: [true, false] 指定对话框打开时第一个复选框处于选中状态,第二个处于未选中状态。

帮助按钮回调,指定为函数句柄、元胞数组或字符向量(不推荐)。如果您指定了帮助按钮回调,MATLAB 将在对话框中添加一个“帮助”按钮。有关详细信息,请参阅Create Callbacks for Apps Created Programmatically

示例: @myfun 将回调函数指定为函数句柄。

示例: {@myfun,x} 将回调函数指定为元胞数组。这种情况下,函数接受输入参数 x

函数调用列表,指定为由函数名称和可选参数组成的元胞数组,它们计算并返回要导出的值。flist 的长度必须与 labels 相同。

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

输出参数

全部折叠

在其中显示对话框的 Figure 对象。如果请求两个返回参数,则 f 以空数组 [] 形式返回,而且在用户关闭对话框之前,export2wsdlg 函数不会返回值。

true 或 false 结果,返回为 10。如果用户点击确定按钮,该函数返回 1 (true),否则返回 0。在用户关闭对话框之前,export2wsdlg 函数不会返回值。

详细信息

全部折叠

模态对话框

模态对话框阻止用户在响应该对话框之前与其他 MATLAB 窗口进行交互。

提示

  • 即使有一个“导出到工作区”模态对话框处于活动状态,MATLAB 程序仍会继续执行。要阻止该程序执行直到用户关闭对话框为止,请使用 uiwait 函数。

版本历史记录

在 R2006b 中推出

另请参阅