Cody

# Problem 42859. Convert nested struct-array to numeric array

Solution 1253576

Submitted on 19 Aug 2017
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

### Test Suite

Test Status Code Input and Output
1   Fail
data_ref_temp = rand(5,4,3,2); data.siz = size(data_ref_temp); global data for i1 = 1:data.siz(1) data.altitude.location(i1) = rand; for i2 = 1:data.siz(2) data.floor.location(i1).room(i2) = rand; for i3 = 1:data.siz(3) data.scale.location(i1).room(i2).device(i3) = rand; for i4 = 1:data.siz(4) data.temperature.location(i1).room(i2).device(i3).sample(i4) = data_ref_temp(i1,i2,i3,i4); data.timestamp.location(i1).room(i2).device(i3).sample(i4) = i4; end end end end assert(isequal(struct2mat(data.temperature),data_ref_temp))

[Warning: The value of local variables may have been changed to match the globals. Future versions of MATLAB will require that you declare a variable to be global before you use that variable.]

Assertion failed.

2   Fail
global data data_ref_time = repmat(shiftdim(1:data.siz(4),-2),data.siz(1:3)); assert(isequal(struct2mat(data.timestamp),data_ref_time))

Assertion failed.

3   Fail
global data assert(isequal(struct2mat(data.altitude),data.altitude.location.'))

Assertion failed.

4   Fail
global data assert(isequal(struct2mat(data.floor),cat(1,data.floor.location.room)))

Assertion failed.

5   Fail
global data data.scale.location;[ans.room];[ans.device]; assert(isequal(struct2mat(data.scale),permute(reshape(ans,3,4,5),[3 2 1])))

Assertion failed.