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));
|