How do I input data using GUI inside a loop?

I want to enable people to input several parameters, such as the number of headerlines, for each run inside the loop, by creating a simple GUI.
for i =1:200;
file = ['data' num2str(i) '.txt'];
if exist(file)==2;
h = uicontrol('style','pushbutton', 'callback', '');
N = get(h, 'String');
[a b] = textread(file, '%f %f %f', 'headerlines', N);
end;
end;
My question is, how do I program uicontrol, so that when people click the button, it will simply continue the program, rather than callback another m file?
Thank you.

 采纳的回答

I would use an INPUTDLG here.
prompt = {'Enter the number of header lines:'};
name = 'Header lines..';
for i =1:200;
file = ['data' num2str(i) '.txt'];
if exist(file)==2;
N = inputdlg(prompt,name,1,{'1'});
% Now to turn NLINES from a cell, use:
N = N{1}
[a b] = textread(file, '%f %f %f', 'headerlines', N);
end
end
Although, as a user I would be bummed if I had to enter 200 header lines manually through a GUI each time through the loop. Perhaps it would be better to create a text file which has the number of header lines for each data file in it...

5 个评论

Thank you very much for the help. It's great to learn a new function called INPUTDLG. It is surely much better than uicontrol here.
btw, I like your red neck avatar :-)
That is funny! What is redneck about it, may I ask? Is it the flag? The picture was taken in a schoolroom, not out in a pasture ;-).
The flag, the beard, and the big arms. I lived in the south for 7 years. I surely had fun with them. That said, red neck is a very positive word to me.
Red neck working on matlab is a cute thing :-)
Haha, my mama would be proud...
She surely should. Thank you again for the help. You are the best!

请先登录,再进行评论。

更多回答(0 个)

类别

在 帮助中心 和 File Exchange 中查找有关 Migrate GUIDE Apps 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by