Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 循环按钮的GUI_Matlab_User Interface_Button_Loops - Fatal编程技术网

Matlab 循环按钮的GUI

Matlab 循环按钮的GUI,matlab,user-interface,button,loops,Matlab,User Interface,Button,Loops,我有多个通道,我想在GUI上显示它们的信息。 我想显示的名称,长度,采样率等,并有一个按钮来绘制它或修改增益 每个通道都是独立的,并且并不总是有相同数量的通道,因此我想为一个通道创建一个模式,并在有通道时显示它,例如,每个通道位于前一个通道的下方 它基本上是一个图形对象函数的循环,但我不知道最好的方法 如果你有什么建议 谢谢您的问题的表述非常笼统,因此根据细节可能会有更多的解决方案。然而,相当普遍的做法如下: 假设您有一个函数plotSingleChannel,该函数获取通道数据及其在GUI上的

我有多个通道,我想在GUI上显示它们的信息。 我想显示的名称,长度,采样率等,并有一个按钮来绘制它或修改增益

每个通道都是独立的,并且并不总是有相同数量的通道,因此我想为一个通道创建一个模式,并在有通道时显示它,例如,每个通道位于前一个通道的下方

它基本上是一个图形对象函数的循环,但我不知道最好的方法

如果你有什么建议


谢谢

您的问题的表述非常笼统,因此根据细节可能会有更多的解决方案。然而,相当普遍的做法如下:

假设您有一个函数
plotSingleChannel
,该函数获取通道数据及其在GUI上的可用位置作为输入,您可以在for循环中调用它,调用次数与通道的次数相同。一个玩具示例是,您需要根据需要调整它(例如,可能打开多个图形以处理多个通道):


你试过什么了吗?你有编程编写GUI的经验吗?是的,我有一些经验…我正在考虑为每个频道逐个编写GUI。总共12个频道。因此,如果我想改变一些东西,我必须改变它12次。一团糟。谢谢你的回答,它非常有用,但我不能在绘图旁边做任何按钮。你能给我举个例子吗?请看我编辑的代码,了解在每个频道右侧添加按钮的示例。我真的建议您尝试编辑我的代码,并阅读以编程方式创建GUI的文档,您将从中受益匪浅,而不仅仅是我将代码“放在盘子上”。
function plotManyChannels
fgui = figure;
numChannels = 5;
chData = rand (numChannels , 1000); % 5 random channels
chHeight = .8 * 1/numChannels; % occupy 80% of the available space, in order to leave some free inter-channel margins

for n = 1 : numChannels
    pos = [.05, 1 - n / numChannels, .9, chHeight];
    plotSingleChannel (chData(n,:), fgui, pos);
end
end

function plotSingleChannel (channelData, figHandle, guiPosition)
figure(figHandle)
buttonWidth = .1;
buttonPosition = [1-buttonWidth,guiPosition(2),buttonWidth,guiPosition(4)];
axHandle = axes ('position', guiPosition - [0 0 buttonWidth 0]);
plot(axHandle, channelData);
btnHandle = uicontrol('parent',figHandle,'style','pushbutton','string','push','units','normalized','position',buttonPosition);
end