How can I get the min/max value of all fields in a stucture

9 次查看(过去 30 天)
I would like to obtain the minimum and maximum value in my structure which contains multiple fields.
structure_1.field_01
structure_1.field_02
structure_1.field_03
structure_1.field_04
I require something like-
min_val = min(struct.(:));
Is this possible using one function?
thanks in advance,
Marcus
  1 个评论
Daniel Shub
Daniel Shub 2012-10-11
What is in field_01? Is it a scalar, a n-d double array, something else? How about field_02? Is it the same class and size as field_01?

请先登录,再进行评论。

采纳的回答

Andrei Bobrov
Andrei Bobrov 2012-10-11
out = min(structfun(@(x)min(x(:)),structure_1));

更多回答(1 个)

Daniel Shub
Daniel Shub 2012-10-11
Assuming the contents of the fields are well behaved ...
structure_1.field_01 = rand(1, 1);
structure_1.field_02 = rand(1, 10);
structure_1.field_03 = rand(10, 1);
structure_1.field_04 = rand(10, 10);
structure_1.field_05 = rand(10, 10, 10);
min(cellfun(@(x)min(structure_1.(x)(:)), fieldnames(structure_1)))
By well behaved I mean min(structure_1.field_01(:)) needs to return a scalar double.

类别

Help CenterFile Exchange 中查找有关 Characters and Strings 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by