9
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

119.06.2015Übung 11 - MdMT Methoden der Medizintechnik Übung zur Vorlesung [email protected] Folge 11 – Mein erster Scanner While-Schleife und Matrizen

Embed Size (px)

Citation preview

Page 1: 119.06.2015Übung 11 - MdMT Methoden der Medizintechnik Übung zur Vorlesung knueppel@ovgu.de Folge 11 – Mein erster Scanner While-Schleife und Matrizen

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

Page 2: 119.06.2015Übung 11 - MdMT Methoden der Medizintechnik Übung zur Vorlesung knueppel@ovgu.de Folge 11 – Mein erster Scanner While-Schleife und Matrizen

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

Page 3: 119.06.2015Übung 11 - MdMT Methoden der Medizintechnik Übung zur Vorlesung knueppel@ovgu.de Folge 11 – Mein erster Scanner While-Schleife und Matrizen

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

Page 4: 119.06.2015Übung 11 - MdMT Methoden der Medizintechnik Übung zur Vorlesung knueppel@ovgu.de Folge 11 – Mein erster Scanner While-Schleife und Matrizen

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

Page 5: 119.06.2015Übung 11 - MdMT Methoden der Medizintechnik Übung zur Vorlesung knueppel@ovgu.de Folge 11 – Mein erster Scanner While-Schleife und Matrizen

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

Page 6: 119.06.2015Übung 11 - MdMT Methoden der Medizintechnik Übung zur Vorlesung knueppel@ovgu.de Folge 11 – Mein erster Scanner While-Schleife und Matrizen

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

Page 7: 119.06.2015Übung 11 - MdMT Methoden der Medizintechnik Übung zur Vorlesung knueppel@ovgu.de Folge 11 – Mein erster Scanner While-Schleife und Matrizen

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 ...

Page 8: 119.06.2015Übung 11 - MdMT Methoden der Medizintechnik Übung zur Vorlesung knueppel@ovgu.de Folge 11 – Mein erster Scanner While-Schleife und Matrizen

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);

Page 9: 119.06.2015Übung 11 - MdMT Methoden der Medizintechnik Übung zur Vorlesung knueppel@ovgu.de Folge 11 – Mein erster Scanner While-Schleife und Matrizen

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