Find and replace missing value in a 1*1 struct with 34 fields

I have a 1*1 struct with 34 fields. every field is a 3d array by itself. A picture of it attached. I want to have a code to find -9.969209968386869e+36 in everywhere of this struct (including inside fields) and replace it with NaN.
thank you

 Accepted Answer

How about (untested)
% Get all the field names with this structure.
fieldNames = fieldnames(precip)
for k = 1 : length(fieldNames)
thisFieldName = fieldNames{k}; % Get this field name.
thisField = precip.(thisFieldName); % Get the 3-D array.
% Use ismembertol() to look for the specified value.
indexes = ismembertol(thisField, whatever)
% Replace those locations with nans.
thisField(indexes) = nan;
% Put back into precip.
precip.(thisFieldName) = thisField;
end

2 Comments

thanks but it says
Out of memory. Type "help memory" for your options
I even try to increase RAM in preference but didn't work
Attach precip in a .mat file
save('answers.mat', 'precip');
then attach 'answers.mat' with the paper clip icon.

Sign in to comment.

More Answers (0)

Categories

Asked:

BN
on 28 Oct 2019

Commented:

on 29 Oct 2019

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!