Main Content

whos

列出工作区中的变量及大小和类型

说明

示例

whos 按字母顺序列出当前活动工作区中的所有变量的名称、大小和类型。

示例

whos -file filename 列出指定的 MAT 文件中的变量。

注意

安全注意事项:whos -file 命令在检查文件时可能会执行 MAT 文件中包含的代码。请避免对不受信任的 MAT 文件调用 whos -file

whos global 列出全局工作区中的变量。

示例

whos ___ var1 ... varN 只列出指定的变量。此语法可与上述语法中的任何参数一起使用。

示例

whos ___ -regexp expr1 ... exprN 只列出与指定的正则表达式匹配的变量。

示例

S = whos(___) 将变量的信息存储在结构体数组 S 中。

示例

全部折叠

显示当前工作区中特定变量的信息。例如,列出名称以字母 a 开头的变量的相关信息。

whos a*

现在,列出名称以 ion 结尾的变量的相关信息。

whos -regexp ion$

显示示例 MAT 文件 durer.mat 中存储的变量的所有信息。

whos -file durer.mat
  Name           Size               Bytes  Class     Attributes

  X            648x509            2638656  double              
  caption        2x28                 112  char                
  map          128x3                 3072  double              

将有关 durer.mat 中变量的信息存储在结构体数组 S 中。

S = whos('-file','durer.mat');

显示 S 的内容。

for k = 1:length(S)
   disp(['  ' S(k).name ...
         '  ' mat2str(S(k).size) ...
         '  ' S(k).class]);
end
  X  [648 509]  double
  caption  [2 28]  char
  map  [128 3]  double

创建具有各种属性的变量,然后显示它们的信息。

创建文件 show_attributes.m,其中包含以下语句。

function show_attributes
persistent p;
global g;
p = 1;
g = 2;
s = sparse(eye(5));
c = [4+5i 9-3i 7+6i];
whos

调用 show_attributes。当 MATLAB® 执行 show_attributes 末尾的 whos 命令时,将列出每个变量及其相应的属性。

show_attributes
  Name      Size            Bytes  Class     Attributes

  c         1x3                48  double    complex   
  g         1x1                 8  double    global    
  p         1x1                 8  double    persistent
  s         5x5               128  double    sparse    

列出当前工作区中在嵌套函数中暂停的所有变量。

创建文件 whos_demo.m,其中包含以下语句。

function whos_demo
date_time = datestr(now,'dd-mmm-yyyy');
 
date_time_array = strsplit(date_time,{'-',''});
get_date(date_time_array);

   function get_date(d)
      day = d{1};  %#ok<*NASGU>
      mon = d{2}; 
      year = d{3}; 
      keyboard
   end

end

运行 whos_demo。MATLAB® 将在出现 keyboard 命令的行中暂停。

whos_demo
K>> 

调用 whos 函数。MATLAB 将显示嵌套的 get_date 函数以及包含该嵌套函数的所有函数中的变量(按函数工作区分组)。

K>> whos
Name                 Size            Bytes  Class    Attributes

  ---- whos_demo/get_date ---------------------------------------
  d                    1x3               354  cell               
  day                  1x2                 4  char               
  mon                  1x3                 6  char               
  year                 1x4                 8  char               

  ---- whos_demo ------------------------------------------------
  date_time            1x11               22  char               
  date_time_array      1x3               354  cell               

输入参数

全部折叠

要显示的变量,指定为一个或多个字符向量或字符串标量。使用 '*' 通配符来匹配模式。例如,whos A* S* 列出工作区中以 AS 开头的所有变量的名称。

定义要显示的变量的正则表达式,指定为一个或多个字符向量或字符串标量。例如,whos -regexp ^Mon ^Tues 仅列出工作区中以 MonTues 开头的变量名称。有关创建正则表达式的详细信息,请参阅正则表达式

MAT 文件的名称,指定为字符向量或字符串标量。文件名可以包含完整路径、相对路径或部分路径。例如,whos -file myFile.mat 列出名为 myFile.mat 的 MAT 文件中的所有变量。whos -file filename 命令不返回文件 filename 中任何 MATLAB 对象的大小。

数据类型: char | string

输出参数

全部折叠

变量信息,返回为包含每个变量的标量 struct 的嵌套结构体数组。每个标量 struct 都包含以下字段。

字段描述

name

变量的名称。

size

变量数组的维数。

bytes

为变量数组分配的字节数。

whos 返回每个变量在工作区中占用的字节数,不一定与每个变量在 MAT 文件中占用的字节数相同。第 7 版和后续版本的 MAT 文件已被压缩,因此工作区中需要的字节数通常多于文件中的字节数。

whos 不会报告句柄对象占用的字节数。如果某个变量包含句柄对象,whos 函数为该变量显示的字节数可能比预期的少。

class

变量的类。如果变量没有值,则类是 '(unassigned)'

global

如果是全局变量,则为 true

sparse

如果是稀疏变量,则为 true

complex

如果是复变量,则为 true

nesting

包含以下字段的结构体:

  • function - 定义变量的嵌套或外部函数的名称。

  • level - 该函数的嵌套级别。

persistent

如果是持久变量,则为 true

备选方法

  • 您也可以使用当前文件夹浏览器的详细信息面板查看 MAT 文件的内容。在 MATLAB Online™ 中,要查看 MAT 文件的内容,请在文件浏览器中点击 MAT 文件右侧的预览按钮 来预览它们。

扩展功能

版本历史记录

在 R2006a 之前推出

另请参阅

| | |