checking if field values in a single struct are identical
    13 views (last 30 days)
  
       Show older comments
    
Hello,
I have a struct (S) with 13 fields. Each field has a 'density' column. I want to do an if statement which checks if all the values in the density columns are the same for each field (all 13 of them) i.e. density vals in field 1 = density vals in field 2 etc
if...(need help with this line)
disp('same altitude')
else
disp('different heights')
end 
thank you 
1 Comment
Accepted Answer
  Jan
      
      
 on 19 Jan 2023
        Depending on how the inputs look exactly, maybe:
FieldC = struct2cell(S);
Eq = true;
for k = 2:numel(FieldC)
    if ~isequal(FieldC{k}.density, FieldC{1}.density)
        Eq = false;
        break;
    end
end
There are shorter methods, but please explain at first exactly, what the inputs are.
3 Comments
More Answers (1)
  Walter Roberson
      
      
 on 19 Jan 2023
        density_cell = structfun(@(C) {C.density}, YourStruct);
EQ = isequal(density_cell{:});
No explicit loop needed (but structfun is arguably a hidden loop.)
0 Comments
See Also
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!

