Класс: набор данных
(Не Рекомендуемый) данные о Стеке из нескольких переменных в одну переменную
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,:)