Допустим, у меня есть файл .mat, и я знаю, что каждая из переменных в нем есть XY
перед ним (например, XYJanuary
, XYFebruary
, XYMarch
и так далее ...) и я просто хочу удалить XY
.Удалить первые 2 буквы из рабочего пространства переменных
Я посмотрел на this и пытался копировать его, но это добавляет XY
к моей переменной (XYXYJanuary
, XYXYFebruay
, ...), но я хочу, чтобы это было просто (January
, Februay
, ...).
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
Это прекрасно работает, но могу ли я спросить, почему вы не можете использовать «XY» на RHS ... 3: end - это, по сути, то же самое ... и делать x. ([Names {iname}, (' XY ')]) помещает XY в конец переменной .... – Bala
Вы можете, но это будет * добавить * 'XY' к вашим данным. Это не одно и то же, поскольку вы хотите удалить символы, а не добавлять их. Удаление вещей должно быть сделано путем манипулирования индексами, как я здесь. – Adriaan