Класс: набор данных
(Не Рекомендуемый) Стек массив набора данных из нескольких переменных в одну переменную
The 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
. stack
создает одну переменную данных в B
путем чередования их значений и если A
имеет n
наблюдения, затем B
имеет m
-by- n
наблюдения. Другими словами, stack
принимает m
значения данных от каждого наблюдения в A
и складывает их, чтобы создать m
наблюдения в B
. datavars
- положительное целое число, вектор положительных целых чисел, вектор символов, строковые массивы, массив ячеек векторов символов или логический вектор. stack
также создает сгруппированную переменную в B
чтобы указать, какой из m
переменные данных в A
каждое наблюдение в B
соответствует.
stack
присваивает значения для свойств "по-переменным (например Units
и VarDescription
) для новой переменной данных в B
из соответствующих значений свойств для первой переменной, перечисленных в datavars
.
stack
копирует оставшиеся переменные из A
на B
без укладки, путем репликации каждого из их значений m
времени. Эти переменные обычно являются сгруппированными переменными. Потому что их значения постоянны для каждой группы m
наблюдения в B
, они определяют, какое наблюдение в A
наблюдение в B
происходил из.
[B,iA] = stack(A,datavars)
возвращает вектор индекса iA
указывает соответствие между наблюдениями в B
и тех, кто в A
. stack
создает 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,:)