exponenta event banner

кто

Перечисление переменных в рабочей области с размерами и типами

Описание

пример

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-файла 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 ® whos команда в конце show_attributesперечисляет каждую переменную и соответствующий ей атрибут.

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* перечисляет имена всех переменных в рабочей области, которые начинаются с A или S.

Регулярные выражения, определяющие отображаемые переменные, указанные как один или несколько векторов символов или строковых скаляров. Например, whos -regexp ^Mon ^Tues перечисляет только имена переменных в рабочей области, начинающиеся с Mon или Tues. Дополнительные сведения о создании регулярных выражений см. в разделе Регулярные выражения.

Имя MAT-файла, заданного как вектор символов или строковый скаляр. Имя файла может содержать полный, относительный или частичный путь. Например, whos -file myFile.mat перечисляет все переменные в MAT-файле с именем myFile.mat. whos -file filename команда не возвращает размеры объектов MATLAB в файле filename.

Типы данных: char | string

Выходные аргументы

свернуть все

Информация о переменных, возвращаемая как вложенный структурный массив, содержащий скаляр struct для каждой переменной. Каждый скаляр struct содержит эти поля.

ОбластьОписание

name

Имя переменной.

size

Размеры массива переменных.

bytes

Количество байтов, выделенных для массива переменных.

whos возвращает количество байтов, занимаемых каждой переменной в рабочей области, которое не обязательно совпадает с количеством байтов, занимаемых каждой переменной в MAT-файле. MAT-файлы версии 7 и более поздних сжимаются, поэтому количество требуемых байтов в рабочей области обычно превышает количество байтов в файле.

whos не сообщает о количестве байтов, потребляемых объектами-дескрипторами. Если переменная содержит объекты-дескрипторы, количество байт, whos отображение функции для переменной может быть меньше, чем ожидалось.

class

Класс переменной. Если переменная не имеет значения, класс имеет значение '(unassigned)'.

global

true если переменная является глобальной.

sparse

true если переменная разрежена.

complex

true если переменная является сложной.

nesting

Структура с этими полями:

  • function - имя вложенной или внешней функции, определяющей переменную.

  • level - уровень вложенности этой функции.

persistent

true если переменная является постоянной.

Альтернативы

  • Также можно просмотреть содержимое MAT-файлов с помощью панели «Подробности» браузера «Текущая папка». Панель «Сведения» недоступна в MATLAB Online™.

Представлен до R2006a