Find minimum value within struct
16 ビュー (過去 30 日間)
古いコメントを表示
Hi
I'm trying to determine the minimum value within a struct. I have a data struct with subfields which are timestamped. I'd like to find the smallest time, then reference all the other data accordingly.
example of the data:
- data.val1.time = something
- data.val2.time = something else
- .
- .
- data.valN.time = something else
I can think of a brute force way of doing it, but I'm thinking that there should be a nicer way.
anyone have any ideas?
1 件のコメント
Jan
2011 年 8 月 3 日
Are "val1", "val2", ... the real field names? Then I strongly recommend to use an array instead: val(1), val(2), ... This will make the conversion of the subfield .time much easier.
採用された回答
その他の回答 (1 件)
Sean de Wolski
2011 年 8 月 3 日
min(structfun(@min,data));
is significantly faster on my machine. Conversions to and from cells take awhile.
1 件のコメント
Jan
2011 年 8 月 3 日
STRUCT2CELL is surprisingly fast, because the underlying representation is almost equivalent: Only the list of field names is different.
But CELL2MAT is slow, because it does not pre-allocate sufficiently. Anyhow, for 3 or 100 fields the speed will not be too important.
参考
カテゴリ
Help Center および File Exchange で Structures についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!