Info

この質問は閉じられています。 編集または回答するには再度開いてください。

How do I efficiently edit GUIDE item handles in a loop?

1 回表示 (過去 30 日間)
Carlo Cavaliere Ballesta
Carlo Cavaliere Ballesta 2019 年 2 月 21 日
閉鎖済み: MATLAB Answer Bot 2021 年 8 月 20 日
I have a program written using GUIDE (yes, I still use it), and i'm trying to modify the properties a series of objects named Sector1, Sector 2... SectorN in a loop. The problem is, to do this I'm currently using eval (expression), such as:
expression = ['set(handles.Sector',num2str(i),',''Position'', pos1);'];
eval(expresion);
But it runs terribly slow, as the recommendations here state. I'm wondering if there is a workaround to avoid using eval while still being able to call the objects in a loop. Thanks.
  3 件のコメント
Stephen23
Stephen23 2019 年 2 月 21 日
編集済み: Stephen23 2019 年 2 月 21 日
"I'm wondering if there is a workaround to avoid using eval while still being able to call the objects in a loop"
Just access them directly in handles using dynamic fieldnames:
Remember that putting numbers into variable names is a sign that you are doing something wrong... as you are finding out, it forces you into writing slow, complex, buggy code that is hard to debug. Read this to know why:
Using indexing would be the most efficient solution and is what you should have used.
Personally I would also avoid GUIDE. Ultimately it is simpler to write your own code.
Carlo Cavaliere Ballesta
Carlo Cavaliere Ballesta 2019 年 2 月 22 日
Thank you both, i managed to avoid using eval by using dynamic fieldnames, as you suggested. Thank you again for your time.

回答 (0 件)

この質問は閉じられています。

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by