WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

slider

 

kosten
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 21.11.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.12.2009, 16:46     Titel: slider
  Antworten mit Zitat      
Tag,

ich will das Minimum und das Maximum des Sliders in

function slider1_CreateFcn(hObject, eventdata, handles)

ändern.

Ich gebe das ein:

set(hObject, 'Max', 10, 'Min', 1)

und es erscheint diese Meldung:

Warning: slider control can not have a Value outside of Min/Max range
Control will not be rendered until all of its parameter values are
valid
> In gui_mainfcn at 239
In prog_4 at 42
Warning: slider control can not have a Value outside of Min/Max range
Control will not be rendered until all of its parameter values are
valid
Warning: slider control can not have a Value outside of Min/Max range
Control will not be rendered until all of its parameter values are
valid
Warning: slider control can not have a Value outside of Min/Max range
Control will not be rendered until all of its parameter values are
valid
Warning: slider control can not have a Value outside of Min/Max range
Control will not be rendered until all of its parameter values are
valid

Wie muss ich das richtig eingeben?
Private Nachricht senden Benutzer-Profile anzeigen


Martin
Admin

Admin



Beiträge: 652
Anmeldedatum: 16.06.07
Wohnort: Bietigheim-Bissingen
Version: ---
     Beitrag Verfasst am: 11.12.2009, 16:50     Titel:
  Antworten mit Zitat      
Hallo kosten,

du musst den Slider noch einen (Anfangs-)Wert geben.

Code:
set(hObject, 'Value', 5)


Der sollte natürlich zwischen dem Min udn Max Wert liegen.

Viele Grüße
Martin
_________________

Der kleine goMatlab.de-Knigge - Eine kleine Liste von wichtigen Regeln, die jeder beachten sollte
Private Nachricht senden Benutzer-Profile anzeigen
 
SirGonders
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 31.01.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.06.2010, 11:09     Titel:
  Antworten mit Zitat      
Ich habe ein ähnliches Problem und zwar habe ich sein Switch-Case - Anweisung die je nach Fall den Min-Max-Bereich verändert. Das ganze ist über Callbacks an eine GUI gekoppelt
Das Problem ist nun, das der min-max-Bereich einmal von 0:1:360 geht und einmal 0:45:360. Wenn nun der Slider auf Beispielsweise 157 steht, dann gibt es diesen case ja nicht für alle Optionen. Klar kann man das mit einem otherwise abfangen und dann auch den slider-wert neu setzen, leider bekommt man dann trotzdem noch die Warnungen in der Matlab-Prompt. Gibt es vielleicht noch eine andere Möglichkeit um mit variierenden Slider-Bereichen umzugehen ?

Code:

switch sel_filter
        case 1
            %ohne Filter
            set_filter = false;
            filtermatrix(:,:) = 1;
            set(UD.txt_radius_filter,'Enable','off');
            set(UD.sl_radius_filter,'Enable','off');
            set(UD.sl_winkel,'Enable','off')
            set(UD.txt_winkel,'Enable','off')

        case 2
            %Messerschneide (waagerecht)
            if(set_filter==false)
                set_filter = true;
            end
            set(UD.txt_radius_filter,'Enable','on');
            set(UD.sl_radius_filter,'Enable','on');
            set(UD.sl_radius_filter,'Min',-N/2,'Max',N/2-1,'SliderStep',[1 N/10]./N);
            set(UD.sl_winkel,'Enable','off')
            set(UD.txt_winkel,'Enable','off')
            if(filter2==false)
                filter2 = true;
                filter3 = false;
                filter4 = false;
                filter5 = false;
                filter6 = false;
                filter7 = false;
                filter8 = false;
                filter9 = false;
                filter10 = false;
                filter11 = false;
                set(UD.sl_radius_filter,'Value',0);
            end

            set(UD.txt_radius_filter,'String',sprintf('Filter-Radius (= %3.0f px)',get(UD.sl_radius_filter,'Value')));
            filtermatrix(X' <= get(UD.sl_radius_filter,'Value')) = 1;

        case 3
            %Messerschneide (senkrecht)
            if(set_filter==false)
                set_filter = true;
            end
            set(UD.txt_radius_filter,'Enable','on');
            set(UD.sl_radius_filter,'Enable','on');
            set(UD.sl_radius_filter,'Min',-N/2,'Max',N/2-1,'SliderStep',[1 N/10]./N);
            set(UD.sl_winkel,'Enable','off')
            set(UD.txt_winkel,'Enable','off')
           
            if(filter3==false)
                filter2 = false;
                filter3 = true;
                filter4 = false;
                filter5 = false;
                filter6 = false;
                filter7 = false;
                filter8 = false;
                filter9 = false;
                filter10 = false;
                filter11=false;
                set(UD.sl_radius_filter,'Value',0);
            end
           
            set(UD.txt_radius_filter,'String',sprintf('Filter-Radius (= %3.0f px)',get(UD.sl_radius_filter,'Value')));
            filtermatrix(Y' <= get(UD.sl_radius_filter,'Value')) = 1;
           
        case 4
            %Messerschneide (winkelabh.)
            if(set_filter==false)
                set_filter = true;
            end
            set(UD.txt_radius_filter,'Enable','on');
            set(UD.sl_radius_filter,'Enable','on');
            set(UD.sl_winkel,'Enable','on')
            set(UD.txt_winkel,'Enable','on')
           
            set(UD.sl_radius_filter,'Min',-N/2,'Max',N/2-1,'SliderStep',[1 N/10]./N);
            set(UD.sl_winkel,'Min', 0, 'Max', 360,'Sliderstep', [0.0028 0.0028]);
           
            if(filter4==false)
                filter2 = false;
                filter3 = false;
                filter4 = true;
                filter5 = false;
                filter6 = false;
                filter7 = false;
                filter8 = false;
                filter9 = false;
                filter10 = false;
                filter11 = false;
                set(UD.sl_radius_filter,'Value',0);
            end

            set(UD.txt_radius_filter,'String',sprintf('Filter-Radius (= %3.0f px)',get(UD.sl_radius_filter,'Value')));
           
            winkel = deg2rad(get(UD.sl_winkel,'Value')); %Winkel der ueber Slider eingestellt wird
            verschiebung =  get(UD.sl_radius_filter,'Value'); %Verschiebung in Richtung der Flachennormalen
            [THETA,RHO] = cart2pol(X,Y);    %Koordinatentransformation des meshgrids
            THETA=THETA+winkel;             %Drehung der Koordinasten um Winkel in rad
            [X_, Y_]=pol2cart(THETA, RHO);  %Ruecktransformation der gedrehten Koordinaten
            filtermatrix(X_+Y_ >= verschiebung)=1; %Berechnung der Filtermatrix
       
        case 5
            %Keil winkelabhaengig
            if(set_filter==false)
                set_filter = true;
            end
           
            %Slider aktivieren, initialisieren
            set(UD.txt_radius_filter,'Enable','off');
            set(UD.sl_radius_filter,'Enable','off');
            set(UD.sl_winkel,'Enable','on')
            set(UD.txt_winkel,'Enable','on')
            set(UD.sl_winkel,'Min', 0, 'Max',360,'Sliderstep', [0.125 0.125]);

            winkel = get(UD.sl_winkel,'Value'); %Winkel der ueber Slider eingestellt wird

            switch winkel
                case 0
                    filtermatrix = zeros(M, N);
                    filtermatrix((2*Y'+X') <= 0) = 1;
                    filtermatrix = filtermatrix + fliplr(filtermatrix);                          
                case 45
                    filtermatrix = zeros(M, N);
                    keil = filtermatrix;
                    keil ((Y'+2*X') <= 0) = 1;              
                    keil2 = filtermatrix;
                    keil2((Y'+1/2*X')>=  0) = 1;        
                    keil3 = keil + keil2;                                           %Keil-Matrix generieren
                    keil4 = fliplr(keil3);                                          %Keil entsprechend drehen
                    filtermatrix = keil4;
                case 90
                    filtermatrix = zeros(M, N);
                    filtermatrix((2*Y'+X') <= 0) = 1;                               %Winkel der Geraden halbiert
                    filtermatrix = rot90(filtermatrix + fliplr(filtermatrix));
                case 135
                    filtermatrix = zeros(M, N);
                    keil = filtermatrix;
                    keil ((Y'+2*X') <= 0) = 1;
                    keil2 = filtermatrix;
                    keil2((Y'+1/2*X')>=  0) = 1;
                    keil3 = keil + keil2;
                    keil4 = rot90(keil3,2);
                    filtermatrix = keil4;
                case 180
                    filtermatrix = zeros(M, N);
                    filtermatrix((2*Y'+X') <= 0) = 1;
                    filtermatrix = rot90(filtermatrix + fliplr(filtermatrix),2);
                case 225
                    filtermatrix = zeros(M, N);
                    keil = filtermatrix;
                    keil ((Y'+2*X') <= 0) = 1;
                    keil2 = filtermatrix;
                    keil2((Y'+1/2*X')>=  0) = 1;
                    keil3 = keil + keil2;
                    keil4 = rot90(keil3,3);
                    filtermatrix = keil4;
                case 270
                    filtermatrix = zeros(M, N);
                    filtermatrix((2*Y'+X') <= 0) = 1;
                    filtermatrix = rot90(filtermatrix + fliplr(filtermatrix),3);
                case 315
                    filtermatrix = zeros(M, N);
                    keil = filtermatrix;
                    keil ((Y'+2*X') <= 0) = 1;
                    keil2 = filtermatrix;
                    keil2((Y'+1/2*X')>=  0) = 1;
                    keil3 = keil + keil2;
                    filtermatrix = keil3;
                case 360
                    filtermatrix = zeros(M, N);
                    filtermatrix((2*Y'+X') <= 0) = 1;
                    filtermatrix = rot90(filtermatrix + fliplr(filtermatrix),4);
                otherwise
                    filtermatrix = zeros(M, N);
                    filtermatrix((2*Y'+X') <= 0) = 1;
                    filtermatrix = filtermatrix + fliplr(filtermatrix);
                    set(UD.sl_winkel,'Value',0)
                   
            end
                       
            if(filter5==false)
                filter2 = false;
                filter3 = false;
                filter4 = false;
                filter5 = true;
                filter6 = false;
                filter7 = false;
                filter8 = false;
                filter9 = false;
                filter10 = false;
                filter11 = false;
            end
           
        case 6
            %Doppelkeil winkelabhaengig
            if(set_filter==false)
                set_filter = true;
            end
            %Slider und aktivieren, initialisieren
            set(UD.txt_radius_filter,'Enable','off');
            set(UD.sl_radius_filter,'Enable','off');
            set(UD.sl_winkel,'Enable','on')
            set(UD.txt_winkel,'Enable','on')
            set(UD.sl_winkel,'Min', 0, 'Max',180,'Sliderstep', [0.25 0.25]);
           
            winkel = get(UD.sl_winkel,'Value'); %Winkel der ueber Slider eingestellt wird

            switch winkel
                case 0
                    filtermatrix = zeros(M, N);
                    filtermatrix((2*Y'+X') <= 0) = 1;
                    filtermatrix = filtermatrix + fliplr(filtermatrix);
                    filtermatrix = filtermatrix.*flipud(filtermatrix);            
                case 45
                    keil = zeros(M, N);
                    keil((Y'+2*X') >= 0) = 1;
                    keil2 = filtermatrix;
                    keil2((Y'+1/2*X') <= 0) = 1;
                    keil3 = keil + keil2;
                    keil4 = rot90(keil3,2);
                    filtermatrix = rot90(keil3.*keil4,3);
                case 90
                    filtermatrix = zeros(M, N);
                    filtermatrix((2*Y'+X') <= 0) = 1;
                    filtermatrix = filtermatrix + fliplr(filtermatrix);
                    filtermatrix = rot90(filtermatrix.*flipud(filtermatrix));
                case 135
                    keil = zeros(M, N);
                    keil((Y'+2*X') >= 0) = 1;
                    keil2 = filtermatrix;
                    keil2((Y'+1/2*X') <= 0) = 1;
                    keil3 = keil + keil2;
                    keil4 = rot90(keil3,2);
                    filtermatrix = keil3.*keil4;
                case 180
                    filtermatrix = zeros(M, N);
                    filtermatrix((2*Y'+X') <= 0) = 1;
                    filtermatrix = filtermatrix + fliplr(filtermatrix);
                    filtermatrix = filtermatrix.*flipud(filtermatrix);
                otherwise
                    filtermatrix = zeros(M, N);
                    filtermatrix((2*Y'+X') <= 0) = 1;
                    filtermatrix = filtermatrix + fliplr(filtermatrix);
                    filtermatrix = filtermatrix.*flipud(filtermatrix);
                    set(UD.sl_winkel,'Value',0)
            end

 
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.