How to inverse all vectors in a struct
8 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi, I have several structs with vectors in all of them. For some reason I have all vectors in wrong order. An example could be that they are 1 4 7 9 8 but I would like it to be 8 9 7 4 1. I wonder if there is a way to inverse all of the vectors inside a struct without having to call Structure.A, Structure.B etc as it would both be time consuming, line consuming and inconvenient!
I guess I am looking for something like fliplr(Structure) instead of fliplr(Structure.A)
All help is much appreciated! Fredrik
0 Kommentare
Antworten (2)
Matt Kindig
am 3 Apr. 2013
Bearbeitet: Matt Kindig
am 3 Apr. 2013
Structure= structfun(@fliplr, Structure, 'UniformOutput', false)
0 Kommentare
Jan
am 3 Apr. 2013
Compare the structfun approach with a loop:
f = fieldnames(S);
for k = 1:length(f)
af = f{k};
S.(af) = S.(af)(end:-1:1);
end
Inside structfun a loop is required also. Calling the function fliplr() has a certain overhead, so reverting the vectors locally is an advantage.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!