Переориентируйте таблицу или расписание так, чтобы строки стали переменными
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
высота
, и 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
Переориентируйте его так, чтобы его строки стали переменными в выходе. 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, можно взять имена из входной таблицы или расписания и использовать их в качестве имен переменных в выходной таблице без модификации. Чтобы сохранить настоящие имена, используйте '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'
как показано в таблице.
Значение | Значение |
---|---|
Вектор символов или строковый скаляр | Имя переменной во входной таблице |
Целочисленный | То переменная th в T1 . |
Логический вектор, длина которого равняется количеству переменных в |
|
В то время как значение 'VariableNamesSource'
должно быть имя, номер или логический массив, который задает табличную переменную, сама переменная может иметь любой тип данных с этими ограничениями.
Значения, содержавшиеся в заданной табличной переменной, должны иметь тип данных, который позволяет значениям быть преобразованными в строки. Например, значение 'VariableNamesSource'
может быть имя табличной переменной, которая содержит datetime
массив, потому что datetime
значения могут быть преобразованы в строки.
Количество имен, взятых из заданной табличной переменной, должно совпадать с количеством строк входной таблицы.
'DataVariables'
— Выбранные переменные от T1
Выбранные переменные от T1
В виде разделенной запятой пары, состоящей из 'DataVariables'
и вектор символов, массив ячеек из символьных векторов, массив строк, положительное целое число, вектор из положительных целых чисел, логический вектор или объект индекса. rows2vars
функция выбирает переменные, заданные значением 'DataVariables'
и переориентирует только те переменные, чтобы стать строками T2
. Остающиеся переменные T1
отбрасываются.
'VariableNamingRule'
— Управляйте для именования переменных в T2
'modify'
(значение по умолчанию) | 'preserve'
Управляйте для именования переменных в T2
В виде разделенной запятой пары, состоящей из 'VariableNamingRule'
и любой значение 'modify'
или 'preserve'
.
Значения 'VariableNamingRule'
задайте следующие правила для именования переменной в выходной таблице или расписании.
Значение | Правило |
---|---|
| Измените имена, взятые из входной таблицы или расписания так, чтобы соответствующие имена переменных в выходе были также допустимыми идентификаторами MATLAB. |
| Сохраните настоящие имена, взятые из входной таблицы или расписания. Соответствующие имена переменных в выходе могут иметь любые символы Unicode®, включая символы non-ASCII и пробелы. Примечание: В некоторых случаях,
|
Указания и ограничения по применению:
Расписания не поддерживаются.
Входная таблица не может быть переменным размером.
'VariableNamesSource'
аргумент значения имени не поддерживается.
Значение 'DataVariables'
аргумент значения имени должен быть постоянным.
Значение 'VariableNamingRule'
аргумент значения имени должен быть постоянным.
Если вы присваиваете имена строки к входной таблице, то вектор из имен строки должен быть постоянным.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.