Переориентируйте таблицу или расписание так, чтобы строки стали переменными
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
BostonBoston=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
BostonBoston=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 и пробелы. Примечание: В некоторых случаях,
|
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.