GUI для кнопки Loop - PullRequest
       10

GUI для кнопки Loop

0 голосов
/ 18 марта 2012

У меня есть несколько каналов, и я хочу отобразить их информацию в графическом интерфейсе. Я хотел бы показать имя, длину, частоту дискретизации и т. Д. И иметь кнопку для ее построения или изменения усиления.

Каждый канал независим и он не всегда имеет одинаковое количество каналов, поэтому я хотел бы создать шаблон для одного канала и отображать его столько раз, сколько существует каналов, где, например, каждый канал находится ниже предыдущего .

Это в основном цикл функций графического объекта, но я не знаю, как лучше поступить.

Если у вас есть какие-либо советы ...

Спасибо

1 Ответ

0 голосов
/ 18 марта 2012

Ваш вопрос сформулирован довольно широко, поэтому, в зависимости от деталей, может быть больше решений. Тем не менее, довольно общий подход заключается в следующем:

Предполагая, что у вас есть функция plotSingleChannel, которая получает в качестве входных данных данные канала и доступную для него позицию в графическом интерфейсе, вы можете вызывать ее в цикле for столько раз, сколько каналов. Например, вам нужно настроить его под свои нужды (например, возможно, открыть более одной фигуры для обработки множества каналов):

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...