Benutzer-Werkzeuge

Webseiten-Werkzeuge


matlab:mat04

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
matlab:mat04 [28.01.2014 09:22] – [MAT04 Trampolin] Andre Seyfarthmatlab:mat04 [27.11.2022 23:55] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
-====== MAT04 Trampolin ======+====== MAT04 Grafische Darstellung======
  
-^ Modul | [[MATLAB:MAT04|MAT04 - Trampolin Übung in Matlab]]| +^ Autor | Martin Grimmer 
-^ Kategorie | [[:MATLAB| Matlab]]| +Letzte Bearbeitung 21Jan 2014 
-^ Autor | [[:team#filip_cengic|Filip Cengic]] +^ Matlab Datei | {{:matlab:testdatenv2.zip|TestdatenV2}} |
-Voraussetzung [[:MATLAB:MAT01|Einführung Matlab]] | +
-^ Bearbeitungsdauer | ca40 Minuten +
-^ Matlab Datei | {{:matlab:matlab04.m|Ü04 Trampolin}} | +
-<html></br></html>+
  
-** Aufgabe **+==== Grundlegende Ausgabe von Kurvenverläufen ==== 
 +Grundlegend kann die grafische Darstellung über den Befehl 'plot' erfolgen. 
 +<html><pre class="code"> 
 +plot(Mean_Fz_100); 
 +</pre></html>
  
-a) Ein Trampolinspringer (m=80kg) springt aus einer Höhe* von 2m auf das Trampolin. Wie groß muss die Steifigkeit k (in N/m) des Trampolin seindamit sich das Trampolin im Kontakt um 1m auslenkt? +==== Farben ==== 
 +Über die Ergänzung des Eintrages 'Color' kann ein RGB Code angegeben werdender die Farbe des Graphen festlegt. 
 +<html><pre class="code"> 
 +plot(Mean_Fz_100,'Color',[0.5 0.5 0.5]); 
 +</pre></html>
  
-b) Die Beinsteifigkeit des Trampolinspringers sein 20000N/m. Ohne Trampolin kann er mit einer Höhe von 0,5m hüpfen. Wie hoch kann er mit einem Trampolin hüpfenwenn sich die maximale Beinkraft nicht ändert?+==== Mehrere Graphen in einem Plot ==== 
 +Beim Plot einer zweiten Grafik würde der erste Plot überschrieben werden. Um dies zu vermeiden muss der erste über den Befehl 'hold on' beibehalten werden. 
 +<html><pre class="code"> 
 +plot(Mean_Fz_100,'Color',[0 0]);hold on; 
 +plot(Std_Fz_100,'Color',[0.5 0.5 0.5]); 
 +</pre></html>
  
 +==== Gitternetzlinien ====
 +Ein Gitternetz kann über den Befehl 'grid on' eingeblendet werden.
 +<html><pre class="code">
 +plot(Mean_Fz_100,'Color',[0 0 0]);
 +grid on;
 +</pre></html>
  
-** Lösungsansatz **+==== Achsenbeschriftung ==== 
 +Die Achsenbeschriftung erfolgt getrennt für die X- und Y Achse. In eckigen Klammern sollte die Einheit ergänzt werden. 
 +<html><pre class="code"> 
 +plot(Mean_Fz_100,'Color',[0 0 0]); 
 +xlabel('gait cycle [%]'); 
 +ylabel('force [N]'); 
 +</pre></html>
  
-Ich habe 2 Videos erstellt, um euch die 4. Übungsaufgabe näher zu bringen. Das 1. Video beschränkt sich auf die Grundüberlegungen, die zur Lösung der Aufgabestellung verhelfen sollen. Erst im 2. Video gehe ich auf die Umsetzung der Energiesätze in Matlab ein.  +==== Titel ==== 
-<html></br></html> +Ein Titel für die Grafik wird über den Befehl 'title' vergeben. 
-<html></br></html> +<html><pre class="code"
-===== Mathematische Überlegungen (Energiesatz) ===== +plot(Mean_Fz_100,'Color',[0 0 0]); 
-{{youtube>large:IkGJC-nnc_Y|Musterloesung mit Energiesatz}} +title('Vertical ground reaction forces in running'); 
-<html></br></html+</pre></html>
-<html></br></html> +
-==== Umsetzung in Matlab ==== +
-{{youtube>large:-i8JjRdMDhI|Umsetzung in Matlab}} +
-<html></br></html> +
-<html></br></html>+
  
 +==== Linienstärke ====
 +Die Linienstärke der Kurven kann über das Kürzel 'LineWidth' geändert werden.
 +<html><pre class="code">
 +plot(Mean_Fz_100,'LineWidth',3);
 +</pre></html>
 +
 +==== Legende ====
 +Eine Legende kann automatisch oder manuell erstellt werden.
 +
 +Automatik:
 +<html><pre class="code">
 +plot(Mean_Fz_100,'Color',[0 0 0]);hold on;
 +plot(Std_Fz_100,'Color',[0.5 0.5 0.5]);
 +legend('Mean Fz','Std Fz');
 +</pre></html>
 +Manuell:
 +
 +Für die manuelle Legende wird erst ein weißes Rechteck mit schwarzem Rand erzeugt. Zusätzlich werden die Linien in entsprechender Farbe und der entsprechende Text eingefügt.
 +<html><pre class="code">
 +plot(Mean_Fz_100,'Color',[0 0 0]);hold on;
 +plot(Std_Fz_100,'Color',[0.5 0.5 0.5]);
 +
 +rectangle('Position',[70,1200,25,300],'Facecolor',[1 1 1],'Edgecolor',[0 0 0]);        %rectangle at position X=70, Y=1200 with a length of 25 and a height of 300, Facecolor defines inner Edgecolor the line color
 +line([72 76],[1400 1400],'Color',[0 0 0],'LineWidth',3,'LineStyle','-');               %line from [X Min X Max],[Y Min Y Max], LineStyle defines dottet ':', dashed '--' or solid line '-'
 +line([72 76],[1300 1300],'Color',[0.5 0.5 0.5],'LineWidth',2,'LineStyle','-'); 
 +
 +text(78,1400,'Mean Fz','FontSize',12);                                                 %Text is displayed at position X=78 and Y= 1400 using a font size of 12
 +text(78,1300,'Std Fz','FontSize',12);
 +</pre></html>
 +
 +==== Achsen ====
 +Achsen können über den Befehl axis geändert werden.
 +<html><pre class="code">
 +plot(Mean_Fz_100,'Color',[0 0 0]);hold on;
 +axis([0 100 -50 1600]);      %[X Min X Max Y Min Y Max]
 +</pre></html>
 +
 +==== Gleichzeitige Ausgabe mehrerer Grafiken ====
 +Um mehrere Grafiken gleichzeitig anzuzeigen kann jeder Grafik eine Nummer gegeben werden.
 +<html><pre class="code">
 +figure(1);
 +plot(STD_Fz_100,'Color',[0.5 0.5 0.5],'LineWidth',2);
 +figure(2);
 +plot(Mean_Fz_100,'k','LineWidth',3); 
 +</pre></html>
 +
 +==== Mittelwert und Standartabweichung ====
 +Eine sinnvolle Darstellung der Standartabweichung kann wie folgt aussehen. Sie wird in Relation zum Mittelwertverlauf ausgegeben. Dazu wird sie einerseits zum Mittel addiert und zum zweiten subtrahiert. Diese Graphen werden dann ausgegeben.
 +<html><pre class="code">
 +plot(Mean_Fz_100+STD_Fz_100,'Color',[0.8 0.8 0.8],'LineWidth',2);hold on;
 +plot(Mean_Fz_100-STD_Fz_100,'Color',[0.8 0.8 0.8],'LineWidth',2);
 +plot(Mean_Fz_100,'k','LineWidth',3); 
 +</pre></html>
 +
 +==== Optische Darstellung von Extremwerten ====
 +Um spezille Punkte wie Maxima und Minima zu beschreiben empfehlen sich Markerpunkte. Vorerst muss das Maximum ermittelt werden. Zusätzlich benötigt man die Position des Maximums. Dies erfolgt über den Befehl find. Bei diesem wird der Zielwert mit der Ursprungsvariable verglichen um die Position zu ermittlen.
 +<html><pre class="code">
 +Max_Mean_Fz_100=max(Mean_Fz_100);                           %get maximum value 
 +Pos_Max_Mean_Fz_100 = find(Mean_Fz_100 == Max_Mean_Fz_100); %get position of maximum value
 +
 +%Plot circle at maximum value
 +plot(Mean_Fz_100,'k','LineWidth',3);
 +plot(Pos_Max_Mean_Fz_100,Max_Mean_Fz_100,'o','Markersize',12,'LineWidth',5,'MarkerEdgeColor',[0.2 0.2 0.2]);
 +plot(Pos_Max_Mean_Fz_100,Max_Mean_Fz_100,'o','Markersize',9,'LineWidth',4,'MarkerEdgeColor',[0.9 0.9 0.9]);
 +</pre></html>
 +
 +==== Kombinierte Anzeige aller gelisteten Funktionen ====
 +Eine vollständige Grafik könnte dann wie folgt aussehen.
 +<html><pre class="code">
 +figure(1);
 +plot(Mean_Fz_100+STD_Fz_100,'Color',[0.8 0.8 0.8],'LineWidth',2);hold on;
 +plot(Mean_Fz_100-STD_Fz_100,'Color',[0.8 0.8 0.8],'LineWidth',2);
 +plot(Mean_Fz_100,'k','LineWidth',3); 
 +grid on;
 +
 +axis([0 100 -50 1600]);  
 +
 +Max_Mean_Fz_100=max(Mean_Fz_100);             %get maximum value 
 +Pos_Max_Mean_Fz_100 = find(Mean_Fz_100 == Max_Mean_Fz_100); %get position of maximum value
 +
 +%Plot circle at maximum value
 +plot(Pos_Max_Mean_Fz_100,Max_Mean_Fz_100,'o','Markersize',12,'LineWidth',5,'MarkerEdgeColor',[0.2 0.2 0.2]);
 +plot(Pos_Max_Mean_Fz_100,Max_Mean_Fz_100,'o','Markersize',9,'LineWidth',4,'MarkerEdgeColor',[0.9 0.9 0.9]);
 +
 +rectangle('Position',[70,1100,25,400],'Facecolor',[1 1 1],'Edgecolor',[0 0 0]);
 +line([72 76],[1400 1400],'Color',[0 0 0],'LineWidth',3,'LineStyle','-');         text(78,1400,'Mean Fz','FontSize',12);        %line from [X Min X Max],[Y Min Y Max]
 +line([72 76],[1300 1300],'Color',[0.8 0.8 0.8],'LineWidth',2,'LineStyle','-');   text(78,1300,'Std Fz','FontSize',12);
 +plot(74,1200,'o','Markersize',12,'LineWidth',5,'MarkerEdgeColor',[0.2 0.2 0.2]); text(78,1200,'Max Fz','FontSize',12);
 +plot(74,1200,'o','Markersize',9,'LineWidth',4,'MarkerEdgeColor',[0.9 0.9 0.9]);
 +
 +%Labeling
 +xlabel('gait cycle [%]','FontSize',12);
 +ylabel('force [N]','FontSize',12);
 +title('Vertical ground reaction force during the gait cycle in running','FontSize',12);
 +</pre></html>
 +
 +
 +==== Balkendiagramme unter Matlab ====
 +
 +Balkendiagramme werden in Matlab über den Befehl bar erzeugt. Die Füllfarbe wird über 'Facecolor' die Rahmenfarbe über 'Edgecolor' angegeben. Die Linienstärke des Rahmens über 'LineWidth'.
 +<html><pre class="code">
 +figure(2);
 +bar(Mean_Max_Fz_100,'FaceColor',[0.5 0.5 0.5],'EdgeColor',[0,0,0],'LineWidth',3);
 +ylabel('maximum GRF [N]');                                                          %define label
 +grid on;                                                                            %grid for X and Y axes
 +set(gca,'XTICK',[]);                                                                %labeling of the X axis and the grid for the X axis is removed
 +axis([0.3 2.7 0 2000]);                                                             %defining new axes
 +text(0.85,-100,'Subj. 1');                                                          %put a text to specify two compared conditions
 +text(1.85,-100,'Subj. 2');
 +</pre></html>
 +Um die Standartabweichung einzubinden kann man den Befehl errorbar nutzen. Über den Befehl 'LineWidht' lässt sich allerdings nur der vertikale Balken des Fehlers vergrößern. Beide horizontale Balken müssen von Hand hinzugefügt werden. Weitere Methoden dazu sind im Internet zu finden.
 +Da der erste Balken bei X=1 und der zweite bei X=2 ausgegeben wird werden die horizontalen Linien jeweils von 0.9 bis 1.1 und 1.9 bis 2.1 ausgegeben.
 +<html><pre class="code">
 +hold on;
 +h=errorbar(Mean_Max_Fz_100,Std_Max_Fz_100,'Color',[0 0 0],'LineWidth',3);set(h,'linestyle','none','MarkerSize',50);                          %no line in between both error values
 +line([0.9 1.1],[Mean_Max_Fz_100(1)+Std_Max_Fz_100(1) Mean_Max_Fz_100(1)+Std_Max_Fz_100(1)],'Color',[0 0 0],'LineWidth',3,'LineStyle','-');
 +line([0.9 1.1],[Mean_Max_Fz_100(1)-Std_Max_Fz_100(1) Mean_Max_Fz_100(1)-Std_Max_Fz_100(1)],'Color',[0 0 0],'LineWidth',3,'LineStyle','-');
 +
 +line([1.9 2.1],[Mean_Max_Fz_100(2)+Std_Max_Fz_100(2) Mean_Max_Fz_100(2)+Std_Max_Fz_100(2)],'Color',[0 0 0],'LineWidth',3,'LineStyle','-');
 +line([1.9 2.1],[Mean_Max_Fz_100(2)-Std_Max_Fz_100(2) Mean_Max_Fz_100(2)-Std_Max_Fz_100(2)],'Color',[0 0 0],'LineWidth',3,'LineStyle','-');
 +</pre></html>
  
 {{indexmenu_n>4}} {{indexmenu_n>4}}
matlab/mat04.1390897321.txt.gz · Zuletzt geändert: 27.11.2022 23:55 (Externe Bearbeitung)


Warning: Undefined variable $orig_id in /is/htdocs/wp1019470_OPI92FFHXV/www/wikiLehre/lib/plugins/openas/action.php on line 232