Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Problem 1689. Determine which fields have been modified in a structure

Created by Matt Eicholtz

Given two input structures (s1, s2), determine which field values have been modified in s2 compared to s1. Your output should be a cell array of appropriate fieldnames and a cell array of the corresponding s2 field values. If s1 and s2 are identical (i.e. no values have been changed), return [] for both outputs.

Example

Suppose

s1.foo = 1;
s1.bar = 2;
s1.baz = 3;

and

s2.foo = 1;
s2.bar = 0;
s2.baz = 3;

then the correct output is

f = {'bar'}
v = {0}

Assumptions

  • Inputs are scalar structures
  • Inputs have identical fieldnames
  • Field values can be numeric arrays, strings, or cell arrays
  • The ith cell in output f corresponds to the ith cell in output v

Problem Group

Solution Statistics

10 correct solutions 8 incorrect solutions
Last solution submitted on Jun 09, 2014