Delete single values from a structure field

Hello there,
I'm a newbie in Matlab, so please bare with me.
My problem: I have one structure array, with several fields each of different length. Each array contains values which can range between -1000 and 7000. (it's data from an experimental setup with so and so many repetitions, and each repetition gives me a different number of datapoints. I save the results from each repetition in a new field.)
I want to delete the values below zero in each field. But I just don't know how to do it; how to delete just specific elements from a field instead of the whole thing? Please help?! Thanks!

回答 (2 件)

Sean de Wolski
Sean de Wolski 2011 年 6 月 8 日

0 投票

One way, assuming ALL fields need to have this applied:
structfun(@(x)x(x>=0),your_struct,'uni',false);
Welcome to MATLAB Answers!

2 件のコメント

Andreas
Andreas 2012 年 3 月 5 日
How would you do it with Matlab Coder that does not support anonymous functions?
Walter Roberson
Walter Roberson 2012 年 3 月 5 日
Loop over fieldnames() of the structure and use dynamic field names (if those are supported.)

サインインしてコメントする。

Mary
Mary 2011 年 6 月 9 日

0 投票

Worked perfectly! Thanks so much! And thanks for the welcome. :)

カテゴリ

ヘルプ センター および File ExchangeStructures についてさらに検索

タグ

質問済み:

2011 年 6 月 8 日

Community Treasure Hunt

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

Start Hunting!

Translated by