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

 채택된 답변

Image Analyst
Image Analyst 2019년 10월 28일
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

BN
BN 2019년 10월 28일
편집: BN 2019년 10월 28일
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.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Structures에 대해 자세히 알아보기

질문:

BN
2019년 10월 28일

댓글:

2019년 10월 29일

Community Treasure Hunt

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

Start Hunting!

Translated by