119.06.2015Übung 11 - MdMT
Methoden der MedizintechnikÜbung zur Vorlesung
[email protected] Folge 11 – Mein erster Scanner While-Schleife und Matrizen
By Q
urre
n (Q
urre
n's fi
le) [
GFDL
(http
://ww
w.gn
u.or
g/co
pyle
ft/fd
l.htm
l) or
CC-
BY-S
A-3.
0 (h
ttp://
crea
tivec
omm
ons.o
rg/li
cens
es/b
y-sa
/3.0
/)], v
ia
Wik
imed
ia C
omm
ons
219.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 – 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 auslesen (beliebig oft) pause(0.1); helligkeit = GetLight(SENSOR_1); %0 = dunkel %1023 = max. hell
% 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):
image(values, 'CDataMapping', 'scaled');colormap(gray);
Aufgaben: Mein 12-Pixel-Graustufen-Scanner
Top Related