how to use string within a line of code

I was trying to use a string as a object handle within a for loop to save space as following:
function pushbutton1_Callback(hObject, eventdata, handles)
for Button = 1
Button = num2str(Button);
Obj = strcat('handles.Num',Button);
set(str2func(Obj), 'ForegroundColor','red')
set(handles.Num1, 'ForegroundColor','red')
end
I would like to use Obj to replace handles.Num1. is there any way to do this?

 採用された回答

Adam
Adam 2017 年 9 月 1 日

0 投票

handles.( [ 'Num', num2str( button ) ] )
should work, although quite what you are doing with Button I can't work out
for Button = 1
is pointless and
Button = num2str(Button);
overwriting the loop variable is also not good code.

2 件のコメント

Peng Zhao
Peng Zhao 2017 年 9 月 1 日
Thank you, this works. And because Button was only a temp variable that I used for the loop, that's why I was overwriting it.
Adam
Adam 2017 年 9 月 1 日
loop variables are usually temporary, but you don't overwrite them in the loop.

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

その他の回答 (0 件)

カテゴリ

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

質問済み:

2017 年 9 月 1 日

コメント済み:

2017 年 9 月 1 日

Community Treasure Hunt

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

Start Hunting!

Translated by