1 19.06.2015 Übung 11 - MdMT Methoden der Medizintechnik Übung zur Vorlesung knueppel@ ovgu.de Folge 11 – Mein erster Scanner While-Schleife und Matrizen By Qurren (Qurren's file) [GFDL (http://www.gnu.org/copyleft/fdl.html) or CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)], via Wikimedia Commons
9
Embed
119.06.2015Übung 11 - MdMT Methoden der Medizintechnik Übung zur Vorlesung [email protected] Folge 11 – Mein erster Scanner While-Schleife und Matrizen.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
119.06.2015Übung 11 - MdMT
Methoden der MedizintechnikÜbung zur Vorlesung
[email protected] Folge 11 – Mein erster Scanner While-Schleife und Matrizen
Der Unterschied zu for-Schleife: Sie ist immer dann zu verwenden, wenn man vorher nicht weiß, wie oft die Schleife durchlaufen werden muss.
Heute Neu: While-Schleife in MATLAB
% Beispiel – Endlosschleife: a = 5;
while (a < 10)
pause(0.1);
end
319.06.2015Übung 11 - MdMT
Der Unterschied zu for-Schleife: Sie ist immer dann zu verwenden, wenn man vorher nicht weiß, wie oft die Schleife durchlaufen werden muss
Heute Neu: While-Schleife in MATLAB
% Beispiel – überflüssige Schleife: a = 5;
while (a > 10)
pause(0.1);
end
419.06.2015Übung 11 - MdMT
Der Unterschied zu for-Schleife: Sie ist immer dann zu verwenden, wenn man vorher nicht weiß, wie oft die Schleife durchlaufen werden muss
Heute Neu: While-Schleife in MATLAB
% Beispiel – noch eine Endlosschleife: a = true;
while (a)
pause(0.1);
end
519.06.2015Übung 11 - MdMT
Der Unterschied zu for-Schleife: Sie ist immer dann zu verwenden, wenn man vorher nicht weiß, wie oft die Schleife durchlaufen werden muss
Heute Neu: While-Schleife in MATLAB
% Zur nächsten Schleifeniteration springen: a = 0;
while (a < 10)
a = a + 1;
if (mod(a,2) == 0) continue % Gehe Zum nächsten Schleifendurchlauf! end disp(a); end
619.06.2015Übung 11 - MdMT
Der Unterschied zu for-Schleife: Sie ist immer dann zu verwenden, wenn man vorher nicht weiß, wie oft die Schleife durchlaufen werden muss
Heute Neu: While-Schleife in MATLAB
% Schleife vorzeitig abbrechen: a = 0;
while (a < 10)
a = a + 3;
if (a == 6) break % Springe sofort hinter die Schleife end disp(a); end
719.06.2015Übung 11 - MdMT
Anwendungsbeispiel: Warten auf einen Tastendruck
% Sinnvolle Verwendung: Programm warten lassen auf % Betätigung des Tastsensors – die LEGO-Toolbox hat hierfür % anders als für die Motorbewegung nämlich % keinen Befehl eingebaut!
OpenSwitch(SENSOR_1);
% ... Irgendetwas tun ...
% Auf den Tast-SENSOR_1 warten while (GetSwitch(SENSOR_1) == false) pause(0.1); end
% ... Etwas anders tun ...
819.06.2015Übung 11 - MdMT
Neu: Auslesen des Helligkeitssensors % Sensor initialisieren (wie immer nur einmal!) OpenLight(SENSOR_1,'ACTIVE');
% Sensor schließen (am Ende einmal) CloseSensor(SENSOR_1);
919.06.2015Übung 11 - MdMT
Aufgabe 1Baue einen „Scanner“ für die gedruckte Vorlage: Man soll den Helligkeitssensor nacheinander auf jedes der 12 Felder halten können; auf Betätigung des Tastsensors wird das jeweilige Feld „eingelesen“. Die 12 Helligkeitswerte sind in einer 1x12-Matrix values zu speichern; von dieser ist ein Plot auszugeben.
Aufgabe 2Wie Aufgabe 1, die Werte sind jedoch in einer 3x4-Matrix (entsprechend den gedruckten Farbfelder) zu speichern. Die Matrix ist dann folgendermaßen als Bild darzustellen (welches dann idealerweise ähnlich der Vorlage aussehen sollte):