Matlab中whos的用法

目录

语法

说明

示例

显示工作区变量信息

显示 MAT 文件中存储的变量的信息

在结构体数组中存储变量信息

显示变量属性信息

列出嵌套或匿名函数中的工作区变量


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

语法

whos

whos -file filename

whos global

whos ___ var1 ... varN

whos ___ -regexp expr1 ... exprN

S = whos(___)

说明

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

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

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

whos ___ var1...varN只列出指定的变量。此语法与先前语法中的任何参数结合使用。

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

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

注意

        当存在输出参数时,必须使用whos的函数形式。

示例

显示工作区变量信息

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

whos a*

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

whos -regexp ion$

显示 MAT 文件中存储的变量的信息

        显示示例 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       

var1 ... varN - 要显示的变量

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

expr1 ... exprN - 正则表达式

        定义要显示的变量的正则表达式,指定为一个或多个字符向量或字符串标量。例如,whos -regexp ^Mon ^Tues 仅列出工作区中以 Mon 或 Tues 开头的变量名称。

filename - MAT 文件的名称

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

S - 变量信息

        变量信息,返回为包含每个变量的标量 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™ 中不可用。

Guess you like

Origin blog.csdn.net/jk_101/article/details/111315733