Переориентируйте таблицу или расписание так, чтобы строки стали переменными
T2 = rows2vars(
переориентирует строки T1
)T1
, так что они становятся переменными в таблице выхода T2
, как показано на схеме. Если rows2vars
может конкатенировать содержимое строк T1
, затем соответствующие переменные T2
являются массивами. В противном случае переменные T2
являются массивами ячеек. rows2vars
всегда возвращает таблицу, хотя T1
может быть таблицей или расписанием.
rows2vars
функция копирует имена переменных T1
к новой переменной T2
. Если T1
имеет имена строк или время строки, затем эти имена или время становятся именами переменных T2
. В противном случае, rows2vars
генерирует имена Var1,…,VarN
как имена переменных T2
.
T2 = rows2vars(
задает дополнительные аргументы, используя один или несколько аргументы пары "имя-значение". Для примера можно использовать T1
,Name,Value
)'VariableNamesSource'
аргумент пары "имя-значение" для задания источника имен переменных T2
.
Создайте таблицы, а затем переориентируйте их строки так, чтобы они были переменными в новых таблицах.
Загрузка массивов данных из patients.mat
файл. Составьте таблицу, содержащую LastName
, Gender
, Age
, Height
, и Weight
переменные.
load patients
T1 = table(LastName,Gender,Age,Height,Weight);
head(T1,3)
ans=3×5 table
LastName Gender Age Height Weight
____________ __________ ___ ______ ______
{'Smith' } {'Male' } 38 71 176
{'Johnson' } {'Male' } 43 69 163
{'Williams'} {'Female'} 38 64 131
Переориентируйте строки T1 так, чтобы они были переменными выходами таблицы.
T2 = rows2vars(T1);
Отобразите первые четыре переменные T2
. Первая переменная T2
содержит имена переменных T1
. Остальные переменные T2
соответствуют строкам T1
. Начиная с T1
не имел никаких меток строк, переменных T2
иметь имена по умолчанию, Var1
на VarN
для N
переменные.
T2(:,1:4)
ans=5×4 table
OriginalVariableNames Var1 Var2 Var3
_____________________ _________ ___________ ____________
{'LastName'} {'Smith'} {'Johnson'} {'Williams'}
{'Gender' } {'Male' } {'Male' } {'Female' }
{'Age' } {[ 38]} {[ 43]} {[ 38]}
{'Height' } {[ 71]} {[ 69]} {[ 64]}
{'Weight' } {[ 176]} {[ 163]} {[ 131]}
Составьте таблицу с именами строк. Если таблица имеет имена строк, то rows2vars
превращает имена строк в имена переменных.
T3 = table(Gender,Age,Height,Weight,'RowNames',LastName);
head(T3,3)
ans=3×4 table
Gender Age Height Weight
__________ ___ ______ ______
Smith {'Male' } 38 71 176
Johnson {'Male' } 43 69 163
Williams {'Female'} 38 64 131
Переориентируйте строки T3
.
T4 = rows2vars(T3); T4(:,1:4)
ans=4×4 table
OriginalVariableNames Smith Johnson Williams
_____________________ ________ ________ __________
{'Gender'} {'Male'} {'Male'} {'Female'}
{'Age' } {[ 38]} {[ 43]} {[ 38]}
{'Height'} {[ 71]} {[ 69]} {[ 64]}
{'Weight'} {[ 176]} {[ 163]} {[ 131]}
Загрузите расписание и отобразите его.
load bostonTT
Boston
Boston=6×3 timetable
Time Temp WindSpeed Rain
___________________ ____ _________ ____
2016-06-09 06:03:00 59.5 0.1 0.05
2016-06-09 12:00:23 63 2.3 0.08
2016-06-09 18:02:57 61.7 3.1 0.13
2016-06-10 06:01:47 55.4 5.7 0.15
2016-06-10 12:06:00 62.3 2.6 0.87
2016-06-10 18:02:57 58.8 6.2 0.33
Переориентируйте его так, чтобы его строки стали переменными в выходе. The rows2vars
функция превращает время строки в имена, но изменяет их так, чтобы они были допустимыми именами переменной. Кроме того, выходной аргумент, возвращенный rows2vars
всегда является таблицей, даже когда входной параметр является расписанием.
T = rows2vars(Boston)
Warning: Table variable names that were not valid MATLAB identifiers have been modified. Since table variable names must be unique, any table variable names that happened to match the new identifiers also have been modified. To use the original row names as new variable names, set 'PreserveVariableNames' to true.
T=3×7 table
OriginalVariableNames x2016_06_0906_03_00 x2016_06_0912_00_23 x2016_06_0918_02_57 x2016_06_1006_01_47 x2016_06_1012_06_00 x2016_06_1018_02_57
_____________________ ___________________ ___________________ ___________________ ___________________ ___________________ ___________________
{'Temp' } 59.5 63 61.7 55.4 62.3 58.8
{'WindSpeed'} 0.1 2.3 3.1 5.7 2.6 6.2
{'Rain' } 0.05 0.08 0.13 0.15 0.87 0.33
Начиная с R2020a, можно взять имена из таблицы входа или timetable и использовать их как имена переменных в таблице выхода без изменений. Чтобы сохранить исходные имена, используйте 'VariableNamingRule'
аргумент пары "имя-значение".
Загрузите расписание и отобразите его.
load bostonTT
Boston
Boston=6×3 timetable
Time Temp WindSpeed Rain
___________________ ____ _________ ____
2016-06-09 06:03:00 59.5 0.1 0.05
2016-06-09 12:00:23 63 2.3 0.08
2016-06-09 18:02:57 61.7 3.1 0.13
2016-06-10 06:01:47 55.4 5.7 0.15
2016-06-10 12:06:00 62.3 2.6 0.87
2016-06-10 18:02:57 58.8 6.2 0.33
Переориентируйте расписание так, чтобы его строки стали именами переменных в выход таблице. Преобразуйте datetime
значения к строкам и сохранить получившиеся имена с помощью 'VariableNamingRule'
Пара "имя-значение".
T = rows2vars(Boston,'VariableNamingRule','preserve')
T=3×7 table
OriginalVariableNames 2016-06-09 06:03:00 2016-06-09 12:00:23 2016-06-09 18:02:57 2016-06-10 06:01:47 2016-06-10 12:06:00 2016-06-10 18:02:57
_____________________ ___________________ ___________________ ___________________ ___________________ ___________________ ___________________
{'Temp' } 59.5 63 61.7 55.4 62.3 58.8
{'WindSpeed'} 0.1 2.3 3.1 5.7 2.6 6.2
{'Rain' } 0.05 0.08 0.13 0.15 0.87 0.33
Имена переменных в T
являются недопустимыми идентификаторами MATLAB, поскольку даты начинаются с числа. Однако можно использовать запись через точку для обращения к таким переменным, используя круглые скобки.
T.('2016-06-09 06:03:00')
ans = 3×1
59.5000
0.1000
0.0500
Считайте данные из электронной таблицы в таблицу. Отобразите первые три строки.
T1 = readtable('patients.xls');
head(T1,3)
ans=3×10 table
LastName Gender Age Location Height Weight Smoker Systolic Diastolic SelfAssessedHealthStatus
____________ __________ ___ _____________________________ ______ ______ ______ ________ _________ ________________________
{'Smith' } {'Male' } 38 {'County General Hospital' } 71 176 true 124 93 {'Excellent'}
{'Johnson' } {'Male' } 43 {'VA Hospital' } 69 163 false 109 77 {'Fair' }
{'Williams'} {'Female'} 38 {'St. Mary's Medical Center'} 64 131 false 125 83 {'Good' }
Переориентируйте строки T1
быть переменными новой таблицы, T2
. Задайте, что LastName
переменная от T1
является источником имен переменных T2
.
T2 = rows2vars(T1,'VariableNamesSource','LastName');
Отобразите первые четыре переменные T2
. Первая переменная T2
содержит имена переменных T1
. Остальные переменные T2
соответствуют строкам T1
.
T2(:,1:4)
ans=9×4 table
OriginalVariableNames Smith Johnson Williams
____________________________ ___________________________ _______________ _____________________________
{'Gender' } {'Male' } {'Male' } {'Female' }
{'Age' } {[ 38]} {[ 43]} {[ 38]}
{'Location' } {'County General Hospital'} {'VA Hospital'} {'St. Mary's Medical Center'}
{'Height' } {[ 71]} {[ 69]} {[ 64]}
{'Weight' } {[ 176]} {[ 163]} {[ 131]}
{'Smoker' } {[ 1]} {[ 0]} {[ 0]}
{'Systolic' } {[ 124]} {[ 109]} {[ 125]}
{'Diastolic' } {[ 93]} {[ 77]} {[ 83]}
{'SelfAssessedHealthStatus'} {'Excellent' } {'Fair' } {'Good' }
Отобразите данные в T2.Smith
. В этом примере каждая переменная T2
является массивом ячеек 9 на 1, потому что значения в строках T1
не может быть объединен в массивы.
T2.Smith
ans=9×1 cell array
{'Male' }
{[ 38]}
{'County General Hospital'}
{[ 71]}
{[ 176]}
{[ 1]}
{[ 124]}
{[ 93]}
{'Excellent' }
Считайте данные из электронной таблицы в таблицу. Используйте первый столбец электронной таблицы в качестве имен строк таблицы. Отобразите первые три строки.
T1 = readtable('patients.xls','ReadRowNames',true); head(T1,3)
ans=3×9 table
Gender Age Location Height Weight Smoker Systolic Diastolic SelfAssessedHealthStatus
__________ ___ _____________________________ ______ ______ ______ ________ _________ ________________________
Smith {'Male' } 38 {'County General Hospital' } 71 176 true 124 93 {'Excellent'}
Johnson {'Male' } 43 {'VA Hospital' } 69 163 false 109 77 {'Fair' }
Williams {'Female'} 38 {'St. Mary's Medical Center'} 64 131 false 125 83 {'Good' }
Переориентируйте указанные переменные с T1
и отменить восстановление. Чтобы задать переменные данных по имени, используйте массив ячеек из векторов символов.
T2 = rows2vars(T1,'DataVariables',{'Gender','Age','Height','Weight'}); T2(:,1:4)
ans=4×4 table
OriginalVariableNames Smith Johnson Williams
_____________________ ________ ________ __________
{'Gender'} {'Male'} {'Male'} {'Female'}
{'Age' } {[ 38]} {[ 43]} {[ 38]}
{'Height'} {[ 71]} {[ 69]} {[ 64]}
{'Weight'} {[ 176]} {[ 163]} {[ 131]}
Можно также задать переменные данных по положениям в таблице входа. Чтобы задать положения переменных, используйте числовой массив.
T3 = rows2vars(T1,'DataVariables',[1 2 6:9]);
T3(:,1:4)
ans=6×4 table
OriginalVariableNames Smith Johnson Williams
____________________________ _____________ ________ __________
{'Gender' } {'Male' } {'Male'} {'Female'}
{'Age' } {[ 38]} {[ 43]} {[ 38]}
{'Smoker' } {[ 1]} {[ 0]} {[ 0]}
{'Systolic' } {[ 124]} {[ 109]} {[ 125]}
{'Diastolic' } {[ 93]} {[ 77]} {[ 83]}
{'SelfAssessedHealthStatus'} {'Excellent'} {'Fair'} {'Good' }
T1
- Входная таблицаВходная таблица, заданная как таблица или расписание.
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
'VariableNamingRule','preserve'
сохраняет оригинальные имена, взятые из T1
, не изменяя их, чтобы быть действительным MATLAB® идентификаторы.'VariableNamesSource'
- Переменная в T1
который содержит имена переменныхПеременная в T1
который содержит имена переменных, заданные как разделенная разделенными запятой парами, состоящая из 'VariableNamesSource'
и вектор символов, строковый скаляр, положительное целое число или логический вектор. rows2vars
функция интерпретирует значение 'VariableNamesSource'
как показано в таблице.
Значение | Значение |
---|---|
Вектор символов или строковый скаляр | Имя переменной в таблице входа |
Целое число | The n вторая переменная в T1 . |
Логический вектор, длина которого равняется количеству переменных в | The |
В то время как значение 'VariableNamesSource'
должно быть именем, числом или логическим массивом, задающим табличную переменную, сама переменная может иметь любой тип данных с этими ограничениями.
Значения, содержащиеся в указанной табличной переменной, должны иметь тип данных, который позволяет преобразовывать значения в строки. Для примера значение 'VariableNamesSource'
может быть именем табличной переменной, содержащей datetime
массив, потому что datetime
значения могут быть преобразованы в строки.
Количество имен, взятых из указанной табличной переменной, должно совпадать с количеством строк в вход таблице.
'DataVariables'
- Выбранные переменные из T1
Выбранные переменные из T1
, заданная как разделенная разделенными запятой парами, состоящая из 'DataVariables'
и вектор символов, массив ячеек из векторов символов, строковые массивы, положительное целое число, вектор положительных целых чисел, логический вектор или объект индекса. rows2vars
функция выбирает переменные, заданные значением 'DataVariables'
и переориентирует только эти переменные, чтобы они стали строками T2
. Остальные переменные T1
отбрасываются.
'VariableNamingRule'
- Правило для именования переменных в T2
'modify'
(по умолчанию) | 'preserve'
Правило для именования переменных в T2
, заданная как разделенная разделенными запятой парами, состоящая из 'VariableNamingRule'
и либо значение 'modify'
или 'preserve'
.
Значения 'VariableNamingRule'
задайте следующие правила для именования переменной в таблице выхода или timetable.
Значение | Правило |
---|---|
| Измените имена, взятые из входной таблицы или timetable, чтобы соответствующие имена переменных в выходах также были допустимыми идентификаторами MATLAB. |
| Сохраните исходные имена, взятые из входной таблицы или расписания. Соответствующие имена переменных в выход могут иметь любой Юникод® символы, включая пространства и символы, отличные от ASCII. Примечание: В некоторых случаях,
|
Указания и ограничения по применению:
Расписания не поддерживаются.
Входная таблица не может быть переменным размером.
The 'VariableNamesSource'
аргумент имя-значение не поддерживается.
Значение 'DataVariables'
аргумент имя-значение должен быть постоянным.
Значение 'VariableNamingRule'
аргумент имя-значение должен быть постоянным.
Если вы присваиваете имена строк входа таблице, вектор имен строк должен быть постоянным.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.