Aufgabe 5.1 - Programmiergrundlagen - Schleifen und Bedingungen
Schreiben Sie ein MATLAB®-Skript, das mit Hilfe einer for -Schleife die Summe der Zahlen von 1 bis 100000 berechnet (z. B. n=n+1).
Schreiben Sie ein MATLAB®-Skript, das mit Hilfe einer while-Schleife die Summe die Zahlen von 1 bis 100000 berechnet.
Schreiben Sie ein MATLAB®-Skript, das
Einen Vektor X mit 10000 Zufallszahlen zwischen 0 und 1 erzeugt.
Mit Hilfe einer for-Schleife den Index des ersten Elementes in X berechnet, das > 0.9 ist (falls ein solches existiert) und diesen Index in der Variablen speichert.
Mit Hilfe einer while-Schleife den Index des ersten Elementes in X berechnet, das< 0.1 ist (falls ein solches existiert) und diesen Index in der Variablen speichert.
Mit Hilfe von „ logical indexing" das erste Element findet, das echt zwischen 0.5 und 0.55 liegt (falls ein solches existiert) und diesen Index in der Variablen speichert.
%% Aufgabe 5.1 - Schleifen und Bedingungensclearall%(a)Summe1=0;fori=0:1:100000Summe1=Summe1+i;end%(b)Summe2=0;i=0;whilei<=100000Summe2=Summe2+i;i=i+1;endclearall%(c)VektorX=rand(1,10000);%Element finden, welches >0.9 istfori=1:1:10000if(VektorX(i)>0.9)x1=i;break;endend%Element finden, welches <0.1 isti=1;whilei<=10000if(VektorX(i)<0.1)x2=i;break;endi=i+1;end%Element finden, welches zwischen 0.5 und 0.55 liegt%% Möglichkeit 1: Schleifefori=1:1:10000if(VektorX(i)>=0.50&&VektorX(i)<=0.55)x3=i;break;endend%% Möglichkeit 2: logical indexingLogic_Vek=VektorX>=0.50&VektorX<=0.55;x3_new=find(Logic_Vek,1);
Aufgabe 5.2 - Programmiergrundlagen - Funktionen
Recherchieren Sie den Begriff „MATLAB function" und informieren Sie sich, was man darunter versteht.
Schreiben Sie das MATLAB®-Skript aus Aufgabe 5.1.3 zu einer MATLAB®-Function mit dem Namen analyse um, die
als Eingabeargument die Zahl n bekommt und dann
einen Vektor mit n Zufallszahlen zwischen 0 und 1 erzeugt
Anschließend soll die Funktion genau die Werte und wie in Aufgabe 4.4.3 berechnen und diese als Rückgabewerte zurückliefern.
Machen Sie sich anhand der Funktion analyse mit dem Setzen von „Breakpoints" und dem MATLAB®-Debugger vertraut.
Schreiben Sie ein kurzes Matlab Skript, mit dem Sie die Funktion analyse aufrufen. Springen Sie dabei mit einem Breakpoint in die Funktion.
%% Aufgabe 5.2 - Funktionenfunction[x1 x2 x3] = analyse(n)VektorX=rand(1,n);%Element finden, welches >0.9 istfori=1:1:10000if(VektorX(i)>0.9)x1=i;break;endend%Element finden, welches <0.1 isti=1;whilei<=10000if(VektorX(i)<0.1)x2=i;break;endi=i+1;end%Element finden, welches zwischen 0.5 und 0.55 liegtLogic_Vek=VektorX>=0.50&VektorX<=0.55;x3=find(Logic_Vek);if~isempty(x3)x3=x3(1);elsex3=0;endend
Musterlösung 5.2.4 - Startskript
%% Skript testAnalyse ruft die Funktion auf.n=1000;%dbstop in analyse[x1x2x3]=analyse(n)
Aufgabe 5.3 - Programmiergrundlagen - Funktionen
Abb. 1: Ausreisser in einer verrauschten Messung
Schreiben Sie die Funktion simuliereAussreisser.m, welche normalverteilte Spannungen (Mittelwert: 5 V, Standardabweichung: 10 V) simuliert.
Die x-Achse Bildet die Zeit. Nehmen Sie den Index (1, 2, 3,...) in s.
Bauen Sie zufällig einen Ausreißer in das Datenarray Spannung von 20 V ein.
Zeigen Sie das Ergebnis entsprechend Abb. 1. Eine graue Gerade bildet den Mittelwert, die Messwerte sind tote Punkte und der Ausreißer ist blau eingekreist.
Speichern Sie die Variablen Zeit und Spannung in der Datei Messdaten.mat.
Werten Sie den Quelltext mit Header, Kommentaren und Hilfe auf.
simuliereAussreisser.m
clearall;closeall;clcMesswerte=randn(5)+10% Zufallszahlen mit dem Mittelwert 10Spannung=Messwerte(:)'Zeit=1:length(Spannung)%% Ausreisser einbauenIndex=randi(length(Spannung))Spannung(Index)=20;plot(Zeit,Spannung,'r.')holdonylim([0,20])yline(10)% Wahrer Wertplot(Zeit(Index),Spannung(Index),'bo')legend('Messwerte','Wahrer Wert','Ausreisser')save('Messdaten','Zeit',"Spannung")