Fehlermeldung "Not enough input arguments"

Hi!
Ich bin aktuell dabei, ein Matlab Script zu entwickeln, welches eine struct ausliesst und daraufhin ein Simulink Modell erstellt. Hierzu hab ich einiges in Funktionen ausgelagert. Beim Aufrufen kommt hierbei die Fehlermeldung "Not enough input arguments".
Der Fehler tritt bei "SendMsg(n, modelname, table, struct);" auf. Wie ich das verstehe, müssten aber vier Argumente übergeben werden, die auch gefordert werden. Im Debug Modus existieren auch zum Funktionsaufruf alle vier Argumente.
Über Hilfe würde ich mich sehr freuen!
function Hauptscript(modelname)
if nargin == 0
modelname = 'untitled';
end
[struct] = Setup(modelname);
table = struct2table(struct.messages);
i = height(table);
for n = 1:1:i
SendMsg(n, modelname, table, struct);
end
end
%Ab hier eigene function Datei
function SendMsg(n, modelname, table, struct)
...

Answers (1)

Ich kann mir vorstellen, dass es hier einen "shadowing" Effekt gibt, da TABLE und STRUCT reservierte Begriffe sind. Bitte mal probieren diese umzubenennen.

4 Comments

Danke für den Tipp, das ist sicherlich etwas, was ich mir angewöhnen sollte!
Leider tritt der Fehler immer noch auf, bei Begriffen die definitv nicht reserviert sind.
Dann ist es wohl das Beste hier ein reprodzuzierbares Beispiel zur Verfügung zu stellen. Es ist bestimmt etwas Einfaches, aber wenn man Code/Modell/Daten nicht hat viel Raterei.
Ein weiterer "Shadowing" Effekt könnte sein, falls es mehrere SendMsg Funktionen gibt und MATLAB eine andere als erwartet zuerst findet.
Ich hab leider kein schönes Beispiel erstellen können, womit sich das schön zeigen lässt, ich hab allerdings etwas gefunden, woran es liegen könnte.
Und zwar lese ich ja eine Struktur ein, welche ich durch das Einlesen einer yaml-Datei erstelle. In dieser ist eine Struktur enthalten, aus welcher ich die Tabelle erstelle, a lá Tabelle = struct2table(Struktur.Substruktur). Wenn ich hier die Ursprüngliche Struktur nutze und nicht die Substruktur, dann tritt dieser Fehler nicht auf.
An den Namen sollte es nicht liegen, da ich jetzt alle Namen ersetzt habe.

Sign in to comment.

Products

Release

R2023b

Asked:

on 2 May 2024

Commented:

on 6 May 2024

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!