Как переименовать только несколько переменных в таблице MATLAB?
Я хочу создать таблицу, но хочу установить имя переменной только для одной переменной, но хочу, чтобы все остальные переменные сохранили свое имя.
Пример, скажем, у меня есть эти данные:
User1 = rand(5,1);
User2 = rand(5,1);
User3 = rand(5,2);
Теперь я могу сделать таблицу, используя:
table(User1 , User2 , User3(:,1))
Это дает мне это:
ans =
User1 User2 Var3
________ ________ ________
0.55229 0.049533 0.14651
0.62988 0.48957 0.18907
0.031991 0.19251 0.042652
0.61471 0.12308 0.6352
0.36241 0.20549 0.28187
Я хочу получить это:
ans =
User1 User2 User3
________ ________ ________
0.55229 0.049533 0.14651
0.62988 0.48957 0.18907
0.031991 0.19251 0.042652
0.61471 0.12308 0.6352
0.36241 0.20549 0.28187
Я пытался сделать это:
table(User1 , User2 , User3(:,1), 'VariableNames',{'','','User3'} )
Но это дает ошибку:
Error using setVarNames (line 33)
The VariableNames property must be a cell array, with each element containing one nonempty
string.
Error in table (line 305)
t = setVarNames(t,vnames); % error if invalid, duplicate, or empty
Как мне решить мою проблему с MATLAB 2014b?
По моим данным, d
генерируется и таблица создается в цикле, и я хочу сохранить все значения d
, Если это так или иначе имеет значение.
2 ответа
Согласно документации MATLAB для table
тип данных, вы можете сделать это, изменив таблицу VariableNames
собственность
Используя таблицу примеров T
:
T = table(rand(3, 1), rand(3, 1), rand(3, 1));
Вы можете индексировать переменные численно:
T.Properties.VariableNames{2} = 'Middle_Column'
T.Properties.VariableNames(2:3) = {'Middle_Column', 'End_Column'}
Или вы можете использовать table
неявное сравнение строк с индексом со строкой:
T.Properties.VariableNames{'Var2'} = 'Middle_Column'
T.Properties.VariableNames({'Var2', 'Var3'}) = {'Middle_Column', 'End_Column'}
Или вы можете переназначить все это:
T.Properties.VariableNames = {'Start_Column', 'Middle_Column', 'End_Column'}
таблица (Пользователь1, Пользователь2, Пользователь3(:,1), "Переменные", {"Пользователь1", "Пользователь2", "Пользователь3"})