从工作区变量中删除前2个字母

时间:2015-09-21 07:19:42

标签: matlab

我们说我有一个.mat文件,我知道其中的每个变量前面都有XYJanuary(例如XYFebruaryXYMarch,{ {1}}等等......)我只想删除XY

我查看了this并尝试复制它,但这会将XY添加到我的变量(XYXYJanuaryXYXYFebruay,...)但我想要它只是(JanuaryFebruay,...)。

x= load('file.mat');                             % Load into structure x
names=fieldnames(x);                             % names of the variables
  for iname=1:length(names)                      % start the loop 
    x.(['XY', names{iname}]) = x.(names{iname}); % PROBLEM
    x = rmfield(x, names{iname});
  end
save ('newfile.mat', '-struct', 'x');            %save

1 个答案:

答案 0 :(得分:1)

x= load('file.mat');                              % Load into structure x
names=fieldnames(x);                              % names of the variables
  for iname=1:length(names)                       % start the loop 
    x.([names{iname}(3:end)]) = x.(names{iname}); % No more PROBLEM
    x = rmfield(x, names{iname});
  end
save ('newfile.mat', '-struct', 'x');             % save

您已将'XY'添加到行的LHS,这使其将其添加到最终解决方案中。我所做的是砍掉前两个条目,但保留其余条目,因此(3:end)。这现在适用于我创建的测试用例。