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

Skalierung einer Darstellung

 

Maxx_BMT
Forum-Fortgeschrittener

Forum-Fortgeschrittener



Beiträge: 75
Anmeldedatum: 09.10.13
Wohnort: Ilmenau
Version: R2011a, R2016a
     Beitrag Verfasst am: 25.10.2014, 18:59     Titel: Skalierung einer Darstellung
  Antworten mit Zitat      
Hallo,

ich arbeite momentan an einem Projekt in dem Beißkräfte messen, dazu erstellen wir eine große Zahl an Messreihen.
Die einzelne Messung dauert so zwischen 20 bis 30 sek. Wobei der Proband nur so ca. 10 sek aktiv beißt.

Nun meine Frage beim darstellen der Plots möchte ich gerne, das nicht der gesamte Plot dargestellt wird, sondern dass das Fenster automatisch skaliert wird .

Beispiel: 3sek vor dem und 3 sek nach dem aktiven Biss

Kann ich da irgendwie mit Schwellwerten rechnen zum Beispiel, wenn er das erste mal über 50 Newton misst, dann soll er die Anzeige drei Sekunden vorher anfangen ?

Vielen Dank.

Beste Grüße.
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 25.10.2014, 22:43     Titel:
  Antworten mit Zitat      
was hast du denn bis jetzt versucht ?
Code:
könnten hilfreiche befehle sein
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 26.10.2014, 00:38     Titel: Re: Skalierung einer Darstellung
  Antworten mit Zitat      
Hallo Maxx_BMT,

Zitat:
Kann ich da irgendwie mit Schwellwerten rechnen zum Beispiel, wenn er das erste mal über 50 Newton misst, dann soll er die Anzeige drei Sekunden vorher anfangen ?

Darauf kann ich auf Anhieb erst mal nur dies antworten:

Ja. Du kannst per FIND den ersten und letzten Werte finden und die zusätzlichen Sekunden berücksichtigen.

Wenn Du mehr Details brauchst, müsstest Du mehr Details posten.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Maxx_BMT
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener



Beiträge: 75
Anmeldedatum: 09.10.13
Wohnort: Ilmenau
Version: R2011a, R2016a
     Beitrag Verfasst am: 26.10.2014, 13:40     Titel:
  Antworten mit Zitat      
Hallo,

danke schon mal für die Hilfe das ist der folgende Code und zusätzlich hab ich mal eine Datei zur Verdeutlichung angehängt.

Code:
%% Öffnen der Excel-Arbeitsmappen

file = uigetfile ('*.xls','Bitte Datei zur Auswertung auswählen');
Excel = actxserver ('Excel.Application');
Excel.Workbooks.Open(fullfile(pwd,file))
num1 = xlsread(file,1);
num2 = xlsread(file,2);
Excel.Quit
Excel.delete
clear Excel


%% Einlesen der Messvektoren

fa1 = num1 (8, 13);  
fa2 = num1 (9, 13);
fa3 = num1 (10, 13);
fa4 = num1 (11, 13);

N1 = length (num2(1:end,1));
N2 = length (num2(1:end,2));
N3 = length (num2(1:end,3));
N4 = length (num2(1:end,4));

t1 = (0:(N1-1))/fa1;
t2 = (0:(N2-1))/fa2;
t3 = (0:(N3-1))/fa3;
t4 = (0:(N4-1))/fa4;

Kanal1 = num2(1:end, 1);

Kanal2 = num2(1:end, 2);

Kanal3 = num2(1:end, 3);

Kanal4 = num2(1:end, 4);

%% Plotten der Kanäle

figure(1)

% Kanal 1
subplot(2,2,1);
plot(t1,Kanal1);
grid on;
title ('Kanal 1');
xlabel('Zeit in Sekunden');
ylabel ('Rohdaten der Sensoren');

%Kanal 2
subplot(2,2,2);
plot(t2,Kanal2);
grid on;
title ('Kanal 2');
xlabel('Zeit in Sekunden');
ylabel ('Rohdaten der Sensoren');

%Kanal 3
subplot(2,2,3);
plot(t3,Kanal3);
grid on;
title ('Kanal 3');
xlabel('Zeit in Sekunden');
ylabel ('Rohdaten der Sensoren');

%Kanal 4
subplot(2,2,4);
plot (t4,Kanal4);
grid on;
title ('Kanal 4');
xlabel('Zeit in Sekunden');
ylabel ('Rohdaten der Sensoren');


%% Aufsummieren und Auswertung

s = Kanal1+Kanal2+Kanal3+Kanal4;
%Regression mit Polynom 4. Grades (Werte vom 21.09.14)
a = -5.666e-019;
b = 3.362e-013;
c = -7.434e-008;
d = 0.01634;
e = 0;

scale4 = a*(s.^4)+b*(s.^3)+c*(s.^2)+d*s+e;

figure(5);
plot(t1,scale4);
title ('Summation der Kanäle - biquadratische Regression');
xlabel('Zeit in Sekunden');
ylabel ('Kraft in Newton');

max = max (scale4);


Wie man beim Ausführen des Codes sehen kann, liegt die Messung etwas weit hin und ich möchte automatisch in diesen Bereich skalieren. Nur hab ich momentan keinen so richtigen Einfall dazu.

Wie nutze ich denn dann find zur Skalierung bzw. wie kann ich mit den anderen genannten Befehlen dann mit den Werten die Anzeige skalieren?

Vielen Dank.

Beste Grüße

20102014_1031_Nero_DSH_m_2v8_65_35_f.xls
 Beschreibung:
.xls Datei zum einladen in den Matlabcode

Download
 Dateiname:  20102014_1031_Nero_DSH_m_2v8_65_35_f.xls
 Dateigröße:  124 KB
 Heruntergeladen:  283 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 26.10.2014, 17:07     Titel:
  Antworten mit Zitat      
nunja grundlegen gehst du so vor das du mittels find die stelle findest an der zb dein schwellwert überschritten wird. und dann stellest du mit xlim ein das dieser bereich geplottet wird. alternativ kannt du natürlich auch gleich nur diesen bereich plotten ^^ dann kannst du dir das xlim spaaren.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Maxx_BMT
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener



Beiträge: 75
Anmeldedatum: 09.10.13
Wohnort: Ilmenau
Version: R2011a, R2016a
     Beitrag Verfasst am: 27.10.2014, 11:10     Titel:
  Antworten mit Zitat      
Hallo,

danke für die Hilfe habe es mittels
Code:
hinbekommen konnte die obere und untere Grenze der X-Achse festlegen.

Nun bräuchte ich allerdings noch ein bisschen Hilfe Smile

Ich möchte in einen Nullvektor einen Wert an eine ganz bestimmte Stelle schreiben z.B. habe ich einen Nullvektor und möchte an die stelle x einen y Wert speichern, mit welchen Befehl könnte ich das realisieren?

Weiterhin suche ich einen Befehl der mir ausgibt wo das nächstliegende Minimum neben meinem Maximum liegt z.B. Maximum liegt bei x,y und ich möchte das links benachbarte Minimum finden.

Vielen Dank.

Beste Grüße.
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 - 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.