Define strings in MATLAB
2 次查看(过去 30 天)
显示 更早的评论
I want to define the following as a string in matlab, from s to ).
set(handles.edit,'string','some string')
6 个评论
Rik
2023-7-4
Why don't you explain what you actually want to do? You have described enough for us to know that what you are asking us is a terrible idea, but we don't know what your end goal is.
采纳的回答
Stephen23
2023-7-4
编辑:Stephen23
2023-7-4
"I have lots of set and get commands which I need to generate them within a for loop do that I have not to type all of them."
Do NOT do that.
Firstly, (assuming MATLAB graphics object context) both SET and GET accept multiple handles and/or properties. It is often NOT required to call them multiple times, each time to just SET/GET one property. Read the SET/GET documentation to know more:
Secondly, if for whatever reason you decide to call SET/GET with one handle/property each time, then do NOT create strings of the whole command. That would be a terrible way to write code. Instead you simply put the handles and properties in some arrays and loop over them, e.g.:
P = ["String","Position","Color"];
C = {'Hello world!',[0,0.2,0.5,0.7],'r'};
for k = 1:numel(S)
set(handles.edit,P(k),C{k})
end
But the best solution is to provide SET/GET with multiple inputs, if that is possible.
Do NOT generate text of the commands you want to run. Ugh.
3 个评论
chrisw23
2023-7-7
CtrlName = ["edit1" "edit2" "edit3"] % ...160
P = ["String","Position","Color"];
C = {'Hello world!',[0,0.2,0.5,0.7],'r'};
for k = 1:numel(S)
set(handles.(CtrlName(k)),P(k),C{k})
end
Rik
2023-7-7
For general advice and examples for how to create a GUI (and avoid using GUIDE), have look at this thread.
Apart from that, you can generate CtrlName with sprintf so you don't have to write them all.
But using an array to store the handles is probably a better solution once you move away from GUIDE.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!