annotate general/map_fields.m @ 61:eff6bddf82e3 tip

Finally implemented perceptual brightness thing.
author samer
date Sun, 11 Oct 2015 10:20:42 +0100
parents 3cedfd4549ef
children
rev   line source
samer@44 1 % map_fields - Apply function to all member fields of structure
samer@44 2 %
samer@44 3 % map_fields ::
samer@44 4 % (A->B) ~'function from As to Bs',
samer@44 5 % struct(fields(N,A))
samer@44 6 % -> struct(fields(N,B)).
samer@44 7 %
samer@44 8 % fields(N,A) denotes a list of struct field type declarates with
samer@44 9 % names from list N and types all equal to A, eg
samer@44 10 % fields({'a','b','c'},real) == {a::real, b::real, c::real}.
samer@44 11
samer@44 12 function y=map_fields(fn,x)
samer@44 13 y=foldl(@(s,f)setfield(s,f,fn(s.(f))),x,fields(x));