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

scrollbalken an axes

 

Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.06.2009, 18:55     Titel: scrollbalken an axes
  Antworten mit Zitat      
Hallo,


weiss jemand wie ich an eine axes ein scrollbalken bekomme. will nämlich einen graph z.b immer eine feste schrittweite haben und der z.b von 0:1:10 geht und dann möchte ich weiterscrollen können so das da immer 11 werte stehen, also sozusagen wenn ich um 1 weterscrolle sehe ich dann ausschnitt von 2 bis 11

danke schon ma


steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.029
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2024a
     Beitrag Verfasst am: 09.06.2009, 07:48     Titel:
  Antworten mit Zitat      
Moin,

soetwas was du suchst gibts nicht - wenn dann mal im FileExchange nachschauen.

Du kannst dir allerdings selber soetwas basteln: Du benötigst einen Slider und für diesen eine Callback, das ist alles Wink

Ein Anfang:
Code:
function plotmitslider

x = 0:.1:10;
h = figure;
axes1 = axes;
plot(axes1,x,sin(x)),
uicontrol('style','slider','min',0,'max',10,'Callback',@slidercallback);


    function slidercallback(hObject, eventdata, handle)
        wert = get(hObject,'Value');
        x1 = x+wert;
        plot(axes1,x1,sin(x1));
        set(axes1,'XLim',[min(x1) max(x1)]);
    end
end
 


Gruß
Alex

plotmitslider.m
 Beschreibung:

Download
 Dateiname:  plotmitslider.m
 Dateigröße:  377 Bytes
 Heruntergeladen:  566 mal

_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2009, 10:59     Titel:
  Antworten mit Zitat      
ja dein code funktioniert wunderbar, aber ich bekomme immer ständig neue messwerte, ich will sozusagen jeden aufgenommenen messwert sofort darstellen bis 100 messwerte anzeigt werden. das funktioniert auch schon, und dann will das das axes dann wieder bei 101 bis 200 die nächsten 100 anzeigt, funktioniert auch, das problem ist das mit deiner Funktion immer nur die letzten 100 werte dargestellt werden und wenn ich dann zurückscrolle fehlen die messwerte
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.029
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2024a
     Beitrag Verfasst am: 10.06.2009, 11:44     Titel:
  Antworten mit Zitat      
Um dir da helfen zu können, müsstest du schon den Code dazu zeigen...
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2009, 13:11     Titel:
  Antworten mit Zitat      
hier ma der text (hab versucht ihn zu vereinfachen), am besten ma in eine gui erstellen und einen start knopf und reinkopieren. Datei hat folgenden aufbau: header
1 1 1 2 3
2 2 1 2 3
3 3 1 2 3


Code:
file='S:\98_Studenten\Pie_Horn\Software\B.dat';

pos=get(handles.axes1,'Position');%Position vom axes




aa=0;

 for ii=1:2
wide=4;%startweite des axes in Pixel

for i=1:1:100

cm(i)={dlmread(file,'\t',1,1)};%% simulierte daten vom Gerät, eine Zeile
sz=size(cm{i});
or=sz(1,1);
ort=1:1:or;

set(handles.axes1,'Position',[pos(1),pos(2),wide,4*or]); % anpassen an axes, Pixel alles gleich groß



wide=wide+4; %  axes vergrößern um 4 Pixel


if(mod(i,2)==0) %wenn 2 Zeilen eingelesen wurden, wichtig für pcolor
   
       
  gf = cm{1}(:,2);
        for f=2:1:i
       
        gf = [ gf ,cm{i}(:,2)]
 
        end

zeile=1+aa:1:i+aa;

        [zeile_vec,ort_vec] = meshgrid(zeile,ort);
axes(handles.axes1)
        %plotmitslider(handles.axes1,zeile_vec,ort_vec,gf,zeile,ii)
 pcolor(zeile_vec,ort_vec,gf);



end

       

end
aa=aa+100;

end
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.029
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2024a
     Beitrag Verfasst am: 10.06.2009, 13:47     Titel:
  Antworten mit Zitat      
Moin,

also ich blicke bei deinem Code nicht durch...

Wozu sind die äußeren Schleifen da?
Code:
for ii=1:2
for i=1:1:100
?

Da du den header ja nicht einlesen willst(?!), warum schreibst du dann nicht
Code:
cm = dlmread(file,'\t',2,1);
? Wie gesagt, warum du "cm" indizierst, ist mir nicht klar. Bei mir wäre "cm" jetzt eine Matrix.

Jetzt müsstest du mir nochmal kurz erläutern, was nachfolgend passiert, bzw, passieren soll...

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2009, 14:24     Titel:
  Antworten mit Zitat      
ich lese immer eine Spalte aus der Datei, sind z.B 12 Werte. Header hab ich nicht mitgenommen indizierung fängt glaub ich bei der funktion bei 0 an. die äußere schleife beschreibt nur das 2 mal 100 werte kommen, war ja nur ein bsp.

dann wird das axes frame ("dynamisch") auf anzahl der pixel für pcolor angepasst, hier ma ein Pixelpcolor entspricht 4*4 DisplayPixel

cm(i) beschreibt jeweils eine gemessene zeile, besteht hier aus den spaltenwerten(1Spalte) von der datei.

die if bedingung: immer wenn gerade anzahl von Zeilen plotte mit PCOLOR; wollt eigentlich jede aktuell gemessene zeile plotten, geht aber nicht, pcolor erwartet ne matrix, also es wird immer wieder pcolor aufgeufen bis 100 zeilen(100 Spalten) eingelesen wurden.
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2009, 14:31     Titel:
  Antworten mit Zitat      
ach dann wird immer ein bild aufgebaut mit x Achse 100 Werte, yAchse (Zeilenanzahl der Datei)Werte. die äußere Schleife beschreibt also im prinzip die Anzahl der Bilder, ich will nun das da ein Slider, mit dem ich sozusagen die zwei bilder in einem habe (übertrieben ist das ein Endlosbild das ich abgehen kann mit dem slider
 
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 - 2024 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.