Я выполняю операции с четырьмя массивами ячеек и хочу упростить мой код. Для каждого массива ячеек три вычисления одинаковы. Я попытался ввести структуру и цикл for, чтобы эти операции выполнялись как итерация. Однако структура не выполняет команды точно. В результате удаляется меньше строк, и результат отличается от отдельных операций.
Это пример ручной операции над одним из массивов ячеек:
%Importing and sorting QoL data
lr = tsv2cell('LifeRating.tsv');
lr(3:36,8) = lr(38:end,7);
lr(37:end,:) = [];
lr(:,[2:6,9:end]) = [];
lr = sortrows(lr(2:end,:),1);
lr = erase(lr,[" e", " b", " p"]);
lr = standardizeMissing(lr,':');
lr = rmmissing(lr);`
В этомчасть, последние три строки являются операциями, которые выполняются для каждого массива ячеек, и, таким образом, могут быть помещены в цикл for. Структура и цикл, которые я реализовал, выглядят так:
s.pop=pop; s.gdp=gdp; s.fp=fp; s.lr=lr;
f=fieldnames(s);
for c=1:length(f)
s.(f{c})=erase(s.(f{c}),[" e", " b", " p"]);
s.(f{c})=standardizeMissing(s.(f{c}),':');
s.(f{c})=rmmissing(s.(f{c}));
end
Я ожидал, что размеры массивов ячеек после использования структуры будут такими же, как при использовании операций по отдельности. Однако цикл for, похоже, не влияет на размеры. У кого-нибудь была идея, почему это может не сработать?
Большое спасибо!