Slider UI Control and Callback Function

3 Ansichten (letzte 30 Tage)
johnsmithofmatlab
johnsmithofmatlab am 29 Aug. 2018
Bearbeitet: johnsmithofmatlab am 29 Aug. 2018
Hi,
I'm having a few issues with the Slider UIControl on an existing plot. I have managed to show the following:
I don't know how to adapt the Callback function that is provided in the documentation, for my example:
b.Callback = @(es,ed) updateSystem(h,tf(wn^2,[1,2*(es.Value)*wn,wn^2]));
I would like to vary the value of FL along the Slider to automatically update the graph (the lines must stay at the exact same points), and I am expecting the higher the value of FL, the more blue points are generated as described by the criteria labelled in the following code in the comments of this question.
  1 Kommentar
johnsmithofmatlab
johnsmithofmatlab am 29 Aug. 2018
WD = 0.4;
FL = 20;
f=figure;
for FK = [1.25, 1.5, 1.75, 2, 2.5, 3.5, 4, 5, 6];
if FK == 1.25;
y = [2 3 4 5 6 7 8 9 10 20 30 38];
x0 = log10(40);
x1 = log10(10000);
y0 = log10(2);
y1 = log10(38);
elseif FK == 1.5;
y = [2 3 4 5 6 7 8 9 10 20 30 40 50 60];
x0 = log10(12);
x1 = log10(10000);
y0 = log10(2);
y1 = log10(50);
elseif FK == 1.75;
y = [2 3 4 5 6 7 8 9 10 20 30 40 50 60 70 80 90];
x0 = log10(5);
x1 = log10(10000);
y0 = log10(2);
y1 = log10(90);
elseif FK == 2;
y = [2 3 4 5 6 7 8 9 10 20 30 40 50 60 70 80 90 100];
x0 = log10(3.5);
x1 = log10(8000);
y0 = log10(2);
y1 = log10(100);
elseif FK == 2.5;
y = [2 3 4 5 6 7 8 9 10 20 30 40 50 60 70 80 90 100];
x0 = log10(2.5);
x1 = log10(5500);
y0 = log10(2);
y1 = log10(100);
elseif FK == 3.5;
y = [2 3 4 5 6 7 8 9 10 20 30 40 50 60 70 80 90 100];
x0 = log10(1.9);
x1 = log10(4200);
y0 = log10(2);
y1 = log10(100);
elseif FK == 4;
y = [2 3 4 5 6 7 8 9 10 20 30 40 50 60 70 80 90 100];
x0 = log10(1.7);
x1 = log10(3800);
y0 = log10(2);
y1 = log10(100);
elseif FK == 5;
y = [2 3 4 5 6 7 8 9 10 20 30 40 50 60 70 80 90 100];
x0 = log10(1.5);
x1 = log10(2800);
y0 = log10(2);
y1 = log10(100);
elseif FK == 6;
y = [2 3 4 5 6 7 8 9 10 20 30 40 50 60 70 80 90 100];
x0 = log10(1.2);
x1 = log10(2300);
y0 = log10(2);
y1 = log10(100);
end
x = zeros(1,length(y));
for i = [2:1:max(y)];
y(i) = log10(i);
x(i) = x0 + (((y(i) - y0)/(y1 - y0))*(x1 - x0)); % Linear Interpolation
x(i) = 10^(x(i));
if x(i)*(WD) < FL; % Criteria
loglog(x(i),i,'c.');
elseif x(i)*(WD) > FL;
hold on
loglog(x(i),i,'r.');
xlim([1 10000]);
ylim([1 100]);
end
end
end
grid;
hold on
b = uicontrol('Parent',f,'Style','slider','Position',[81,54,419,23],...
'value',FL, 'min',1, 'max',50);
bgcolor = f.Color;
bl1 = uicontrol('Parent',f,'Style','text','Position',[50,54,23,23],...
'String','1','BackgroundColor',bgcolor);
bl2 = uicontrol('Parent',f,'Style','text','Position',[500,54,23,23],...
'String','50','BackgroundColor',bgcolor);
bl3 = uicontrol('Parent',f,'Style','text','Position',[240,25,100,23],...
'String','FL','BackgroundColor',bgcolor);

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Kategorien

Mehr zu App Building finden Sie in Help Center und File Exchange

Produkte


Version

R2015b

Community Treasure Hunt

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

Start Hunting!

Translated by