stack

Класс: набор данных

(Не Рекомендуемый) массив набора данных Stack от нескольких переменных в одну переменную

dataset тип данных не рекомендуется. Чтобы работать с гетерогенными данными, используйте MATLAB® table тип данных вместо этого. Смотрите MATLAB table документация для получения дополнительной информации.

Синтаксис

B = stack(A,datavars)
[B,iA] = stack(A,datavars)
B = stack(A,datavars,Parameter,value)

Описание

B = stack(A,datavars) стеки несколько переменных в массиве набора данных A в одну переменную в B. В общем случае B содержит меньше переменных, но больше наблюдений, чем A.

datavars задает группу m переменные данных в Aстек создает одну переменную данных в B путем перемежения их значений, и если A имеет n наблюдения, затем B имеет m- n наблюдения. Другими словами, stack берет m значения данных от каждого наблюдения в A и складывает их, чтобы создать m наблюдения в B. datavars положительное целое число, вектор из положительных целых чисел, вектора символов, массива строк, массива ячеек из символьных векторов или логического вектора. stack также создает сгруппированную переменную в B указать который из m переменные данных в A каждое наблюдение в B соответствует.

stack значения присвоений для "свойств на переменную (например, Units и VarDescription) для новой переменной данных в B от соответствующих значений свойств для первой переменной, перечисленной в datavars.

stack копирует остающиеся переменные из A к B без укладки, путем тиражирования каждого из их значений m \times. Эти переменные обычно являются сгруппированными переменными. Поскольку их значения являются постоянными через каждую группу m наблюдения в B, они идентифицируют который наблюдение в A наблюдение в B прибыл из.

[B,iA] = stack(A,datavars) возвращает вектор индекса iA указание на соответствие между наблюдениями в B и те в Aстек создает B(j,:) использование A(iA(j),datavarss).

Для получения дополнительной информации о сгруппированных переменных смотрите Сгруппированные переменные.

Входные параметры

B = stack(A,datavars,Parameter,value) использует следующее название параметра / пары значения, чтобы управлять как stack преобразует переменные в A к переменным в B:

'ConstVars'Переменные в A скопировать в B без укладки. ConstVars положительное целое число, вектор из положительных целых чисел, вектора символов, массива строк, массива ячеек из символьных векторов или логического вектора. Значением по умолчанию являются все переменные в A не заданный в datavars.
'NewDataVarName'Имя для переменной данных, которая будет создана в B. Значением по умолчанию является конкатенация имен m переменные, которые сложены.
'IndVarName'Имя для сгруппированной переменной, чтобы создать в B указать на источник каждого значения в новой переменной данных. Значение по умолчанию основано на 'NewDataVarName' параметр.

Можно также задать несколько групп переменных данных в A, каждый из которых становится переменной в B. Все группы должны содержать то же количество переменных. Используйте массив строк или массив ячеек из символьных векторов, чтобы содержать несколько значений параметров для datavars или содержать несколько значений для 'NewDataVarName'.

Примеры

Объедините несколько переменных для предполагаемых уровней гриппа в одну переменную. Затем распакуйте предполагаемые уровни гриппа по дате.

load flu
 
% FLU has a 'Date' variable, and 10 variables for estimated influenza rates
% (in 9 different regions, estimated from Google searches, plus a
% nationwide estimate from the CDC). Combine those 10 variables into an
% array that has a single data variable, 'FluRate', and an indicator
% variable, 'Region', that says which region each estimate is from.
[flu2,iflu] = stack(flu, 2:11, 'NewDataVarName','FluRate', ...
    'IndVarName','Region')
 
% The second observation in FLU is for 10/16/2005.  Find the observations
% in FLU2 that correspond to that date.
flu(2,:)
flu2(iflu==2,:)
 
% Use the 'Date' variable from that array to split 'FluRate' into 52
% separate variables, each containing the estimated influenza rates for
% each unique date.  The new array has one observation for each region.  In
% effect, this is the original array FLU "on its side".
dateNames = cellstr(datestr(flu.Date,'mmm_DD_YYYY'));
[flu3,iflu2] = unstack(flu2, 'FluRate', 'Date', ...
    'NewDataVarNames',dateNames)
 
% Since observations in FLU3 represent regions, IFLU2 indicates the first
% occurrence in FLU2 of each region.
flu2(iflu2,:)

Смотрите также

|