To resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit: http://www.mathworks.com/matlabcentral/answers/159016
The slider is saved as S.sl1 and I convert it to sl1 and output it. I then convert it to a java slider in another function with :
jScrollBar = findjobj(sl1); jScrollBar.AdjustmentValueChangedCallback = @updateplot;
Then the call back function is:
x = get(sl1,'Value'); Beam.Location = x;
switch funcNum case funcNum == 1 y = Cantilieverd_Point(Beam); set(ht,'ydata',y); drawnow;
case funcNum == 2 y = Simple_Point(Beam); set(ht,'ydata',y); drawnow; end
Where ht is the plot that is being updated and the ' y = ' is another function which creates the y value. When I run this it does not return an error, but it also does absolutely nothing to the graph. I want it to continuously update the graph based off of the slider value.
No products are associated with this question.
There are several problems in your code:
1. Here the callback is defined with no inputs:
jScrollBar.AdjustmentValueChangedCallback = @updateplot;
But in the definition of the callback function, 3 inputs are required.
2. Look at the documentation of switch/case again. The term "funcNum==1" is evaluated to either true or false, but you want to switch for the value 1 or 2. Therefore you need:
switch funcNum case 1 % Not "funcNum == 1" ...
I suggest not to use a Java slider, but the standard Matlab sliders. You cann attach a listener to them also: http://www.mathworks.com/support/solutions/en/data/1-3SR0YI/index.html?product=ML&solution=1-3SR0YI