Matlab: найти и заменить отсутствующее значение в структуре 1 * 1 с 34 полями - PullRequest
0 голосов
/ 28 октября 2019

В Matlab у меня есть структура 1*1 с 34 полями. каждое поле само по себе является трехмерным массивом. Картинка прилагается ниже. Я хочу иметь код, чтобы найти -9.969209968386869e+36 в везде этой структуры и заменить его на NaN. вот его изображение

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 28 октября 2019

Это может быть меньше памяти, чем преобразование ячейки:

Если ваша структура называется x,

names = fieldnames(x); % gets the names of the items in the struct
for i = 1:numel(names)
    x.(names{i})(x.(names{i})==-9.969209968386869e+36) = nan('single');
end
0 голосов
/ 28 октября 2019

Вы можете использовать ниже код

x = struct2cell(mystruct);
for i=1:34
   x{i}(x{i} == -9.969209968386869e+36)= nan
end
mystruct = cell2struct(x, fieldnames(x));
...