Automatisches Definieren von Eingabetypen in der MATLAB Coder App
Da Variablen in C und C++ statisch typisiert sind, muss der Codegenerator bei der Codegenerierung die Typen aller Variablen in Ihren MATLAB®-Dateien ermitteln. Sie müssen die Klasse, die Größe und weitere Eigenschaften für alle Eingaben Ihrer Einstiegsfunktionen angeben. Um Eingabetypen in der MATLAB Coder™ App festzulegen, haben Sie folgende Möglichkeiten:
Weisen Sie die App an, die Eingabetypen automatisch zu ermitteln, indem Sie Ihre Einstiegsfunktion in einem Testskript oder über die Befehlszeile aufrufen.
Geben Sie die Eigenschaften direkt an.
In diesem Schritt des Tutorials weisen Sie die App an, die Eingabetypen automatisch zu ermitteln, indem Sie Ihre Einstiegsfunktion in einem Testskript aufrufen.
Um die Projektdatei einzurichten und die Einstiegsfunktion zum Projekt hinzuzufügen, führen Sie bitte den vorherigen Schritt in dieser Anleitung aus: Prepare MATLAB Function for Code Generation. Alternativ können Sie das Skript collatz_step2.m ausführen.
Prüfen und Ausführen des Testskripts
Erstellen Sie ein Skript, das Ihre Einstiegsfunktion testet. Sehen Sie sich für dieses Tutorial das Testskript collatz_test.m. an.
type collatz_test.mrng(10)
nums = randi(100,1,10);
maxLen = 0;
numMax = 0;
for i = 1:numel(nums)
seq = collatz(nums(i));
if i == 1
minLen = numel(seq);
numMin = nums(i);
end
if numel(seq)>maxLen
maxLen = numel(seq);
numMax = nums(i);
end
if numel(seq)<minLen
minLen = numel(seq);
numMin = nums(i);
end
end
disp("Maximum steps: ");
disp(num2str(maxLen));
disp("For this random integer: ");
disp(num2str(numMax));
disp(newline);
disp("Minimum steps: ");
disp(num2str(minLen));
disp("For this random integer: ");
disp(num2str(numMin));
Dieses Skript überprüft die Collatz-Vermutung für 10 zufällig ausgewählte Ganzzahlen zwischen 0 und 100 und gibt die Ganzzahlen mit der längsten bzw. kürzesten Collatz-Folge aus. Dieses Skript nutzt die Funktion rng, um reproduzierbare Ergebnisse zu erzielen. Führen Sie das Skript aus, um die collatz-Funktion in MATLAB zu testen.
collatz_test
Maximum steps: 36 For this random integer: 78 Minimum steps: 7 For this random integer: 64
Definieren von Eingabetypen mithilfe eines Testskripts
Öffnen Sie die Registerkarte Entry Points (Einstiegspunkte), indem Sie auf der Registerkarte „MATLAB Coder“ auf die Schaltfläche Entry Points klicken. Die App zeigt ein Fehlersymbol an , da die Eingabetypen nicht definiert sind.

Stellen Sie den Parameter Automatically Define Input Types (Eingabetypen automatisch definieren) auf Using Script und geben Sie collatz_test als Testskript ein. Klicken Sie auf die Schaltfläche Run. Die App führt das Testskript aus und definiert das Eingabeargument n als Skalar-Double.

Überprüfen Sie anschließend den MATLAB Programmcode auf Fehler, indem Sie eine MEX-Funktion generieren und ausführen.