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

4 views (last 30 days)
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

Image Analyst
Image Analyst on 28 Oct 2019
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
BN
BN on 28 Oct 2019
Edited: BN on 28 Oct 2019
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
Image Analyst
Image Analyst on 29 Oct 2019
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

Find more on Structures in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!