2016-12-06 4 views
2

Я хочу создать таблицу, но хочу установить имя переменной только одной переменной, но хочу, чтобы все остальные переменные сохраняли свое имя.Как переименовать только несколько переменных в таблице 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

См: [Изменить имя переменной] (https://www.mathworks.com/help/matlab/matlab_prog/modify-units-descriptions-and-table-variable-names.html#zmw57dd0e25360) или [Доступ и изменение свойств] (https://www.mathworks.com/help/matlab/ref/tableproperties.html) – excaza

ответ

3

Per от Matlab documentation for the table data type, вы можете сделать это путем изменения таблицы VariableNames property.

Используя пример таблицы 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 «s неявное сравнение строк индексировать со строкой:

T.Properties.VariableNames{'Var2'} = 'Middle_Column' 
T.Properties.VariableNames({'Var2', 'Var3'}) = {'Middle_Column', 'End_Column'} 

Или вы можете переназначить целое вещь:

T.Properties.VariableNames = {'Start_Column', 'Middle_Column', 'End_Column'} 
-2

table(User1 , User2 , User3(:,1),'VariableNames', {'User1', 'User2', 'User3'})

+0

Это не то, что я хотел. Вы в основном переименовываете все переменные. Я хотел переименовать только одну переменную, но спасибо в любом случае – EkEhsaas

 Смежные вопросы

  • Нет связанных вопросов^_^