Die Strukturen in Octave

In dieser Unterrichtseinheit möchte ich Ihnen zeigen, wie Sie Strukturen in Octave nutzen können, und zwar anhand einiger konkreter Beispiele.

Aber was genau sind Strukturen? Strukturen, oder Struktur-Arrays, ähneln gewöhnlichen Arrays. Doch im Gegensatz zu einem einfachen Array kann eine Struktur gleichzeitig Daten unterschiedlicher Typen speichern. Diese Daten sind dabei in Felder organisiert, wobei jedes Feld einen individuellen Namen hat. Ein gutes Beispiel hierfür wäre ein Telefonbuch.

Anlegen einer Struktur

Nehmen wir an, Sie möchten ein Telefonbuch in einer Struktur abspeichern.

Wir nennen unsere Struktur zunächst einmal "Telefonbuch". Das erste Feld dieser Struktur ist der "Name" einer Person.

>> Telefonbuch.Name="Paul Red";

Das zweite Feld repräsentiert dann die "Telefonnummer" der jeweiligen Person.

>> Telefonbuch.Telefonnummer=123456789;

Falls nötig, kann auch ein Array als Datensatz eines Feldes dienen.

>> Telefonbuch(1).Telefonnummer=[123456789, 987654321]

Als drittes Feld speichern wir dann die Adresse der Person ab.

>> Telefonbuch.Adresse="Rom";

Alternativ können Sie auch sämtliche Felder gleichzeitig durch Nutzung der struct()-Funktion erstellen.

>> Telefonbuch = struct('Name','Paul Red','Telefonnummer',123456789, 'Adresse', 'Rom')

So haben Sie also eine Struktur – quasi ein Verzeichnis – mit einem Eintrag und drei Feldern (Name, Telefonnummer, Adresse) erzeugt.

Bitte beachten Sie: Die Felder sind unterschiedlichen Datentyps. Zwei der Felder sind alphanumerisch (Name und Adresse), während ein Feld numerisch ist (Telefonnummer).

Falls gewünscht, lässt sich natürlich auch eine neue Struktur mit mehreren Feldern und Daten erstellen.

In einem solchen Fall sollten Sie darauf achten, die Feldnamen nur einmalig zu notieren und die jeweiligen Felddaten in geschweifte Klammern zu setzen.

C = struct('Unterricht',{'Mathematik', 'Latein', 'Naturwissenschaften'},'Note',{27,30,18})

Ausgabe der Felder einer Struktur

Um sich eine Liste aller Felder in der Struktur anzeigen zu lassen, nutzen Sie die Funktion fieldnames().

>> fieldnames(Telefonbuch)
ans =
{
[1,1] = Name
[2,1] = Telefonnummer
[3,1] = Adresse
}

Alle Einträge in der Struktur besitzen die gleiche Anzahl an Feldern und tragen dieselben Namen.

In unserem Fall hat die Struktur drei Felder: Name, Telefonnummer und Adresse.

Hinzufügen von Daten zu einer Struktur

Sie können Ihrer Struktur jederzeit weitere Einträge hinzufügen.

Um beispielsweise einen zweiten Eintrag zu erzeugen, nehmen Sie den Namen der Struktur und hängen in Klammern den Index des neuen Eintrags an.

>> Telefonbuch(2).Name="Mario Weiß";
>> Telefonbuch(2).Telefonnummer="987654321";

Nun enthält die Struktur zwei Einträge.

Beim Hinzufügen eines neuen Eintrags müssen Sie nicht zwangsweise alle Felder ausfüllen. Es steht Ihnen frei, einige Felder leer zu lassen.

In unserem Beispiel habenSie beispielsweise beim zweiten Eintrag das Feld für die Adresse leer gelassen.

>> Telefonbuch(2)
ans =

scalar structure containing the fields:

Name = Mario Weiß
Telefonnummer = 987654321
Adresse = [](0x0)

Alternativ können Sie natürlich auch einen neuen Eintrag erstellen, indem Sie alle Felder gleichzeitig mit der struct()-Funktion einfügen.

>> Telefonbuch(3) = struct('Name','Joseph Grün','Telefonnummer',123456789, 'Adresse', 'Mailand')

Zugriff auf Daten in einer Struktur

Um auf Daten in einer Struktur zuzugreifen, geben Sie zunächst den Namen der Struktur an, gefolgt von der Indizierung in Klammern. Danach fügen Sie einen Punkt und den Namen des Feldes hinzu, das Sie betrachten möchten.

Wenn Sie beispielsweise auf die Telefonnummer des ersten Eintrags in der Struktur zugreifen möchten, tippen Sie Telefonbuch(1).Telefonnummer.

>> Telefonbuch(1).Telefonnummer
ans = 123456789

Um die Telefonnummer des zweiten Eintrags zu lesen, tippen Sie Telefonbuch(2).Telefonnummer

>> Telefonbuch(2).Telefonnummer
ans = 987654321

Um alle Daten im Feld Telefonnummer darzustellen, tippen Sie Telefonbuch.Telefonnummer

>> Telefonbuch.Telefonnummer
ans = 123456789
ans = 987654321

Um alle Daten eines spezifischen Eintrags zu sehen, tippen Sie Telefonbuch(1)

>> Telefonbuch(1)
ans =

scalar structure containing the fields:

Name = Paul Red
Telefonnummer = 123456789 987654321
Adresse = Rom

Löschen eines Feldes aus einer Struktur

Um ein Feld aus einer Struktur zu entfernen, müssen Sie die Funktion rmfield() verwenden

Nehmen wir an, Sie fügen der Struktur ein weiteres Feld hinzu. Sie hat nun vier Felder.

>> Telefonbuch(2).Test="test";

Jetzt hat die Struktur vier Felder.

>> fieldnames(Telefonbuch)
ans =
{
[1,1] = Name
[2,1] = Telefonnummer
[3,1] = Adresse
[4,1] = Test
}

Um das Feld "Test" zu löschen, tippen Sie rmfield(Telefonbuch,"Test")

>> Telefonbuch=rmfield(Telefonbuch,"Test");

Das Feld "Test" wurde nun aus der Struktur entfernt.

>> fieldnames(Telefonbuch)
ans =
{
[1,1] = Name
[2,1] = Telefonnummer
[3,1] = Adresse
}

Jetzt sind Sie bestens gerüstet, um mit Strukturen in Octave zu arbeiten.

 
 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin

Strukturen in Octave