Add '_max' to odd variable names and '_min' to even ones.
2 次查看(过去 30 天)
显示 更早的评论
I have a table where just even variables have a name, the rest (odd) have automatic name set by Matlab.
Something like this:
I want to have Var1 = t_max and t = t_min, then Var3 = ang_azi_max and ang_azi = ang_azi_min.
Hope someone can help ;)
0 个评论
采纳的回答
Stephen23
2021-9-22
T = array2table(rand(5,8),'VariableNames',{'Var1','t','Var3','ang_azi','Var5','vel_azi','Var7','acc_azi'})
T.Properties.VariableNames(1:2:end) = strcat(T.Properties.VariableNames(2:2:end),'_max');
T.Properties.VariableNames(2:2:end) = strcat(T.Properties.VariableNames(2:2:end),'_min')
更多回答(1 个)
Simon Chan
2021-9-22
Suppose the table is called T, then try the following:
T.Properties.VariableNames(1:4) = {'t_max','t_min','ang_azi_max','ang_azi_min'}
3 个评论
Simon Chan
2021-9-22
Try this:
temp = T.Properties.VariableNames(2:2:end);
temp_min = cellfun(@(x) strcat(x,'_min'),temp,'UniformOutput',false);
temp_max = cellfun(@(x) strcat(x,'_max'),temp,'UniformOutput',false);
temp_combine = vertcat(temp_max, temp_min);
T.Properties.VariableNames = temp_combine(:);
Stephen23
2021-9-22
@Simon Chan: STRCAT also operates on cell arrays of char vectors, so CELLFUN is entirely superfluous.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!