Fehlermeldung "Not enough input arguments"

6 次查看(过去 30 天)
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)
...

回答(1 个)

Andreas Goser
Andreas Goser 2024-5-3
Ich kann mir vorstellen, dass es hier einen "shadowing" Effekt gibt, da TABLE und STRUCT reservierte Begriffe sind. Bitte mal probieren diese umzubenennen.
  4 个评论
Andreas Goser
Andreas Goser 2024-5-6
Ein weiterer "Shadowing" Effekt könnte sein, falls es mehrere SendMsg Funktionen gibt und MATLAB eine andere als erwartet zuerst findet.
Jonte
Jonte 2024-5-6
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.

请先登录,再进行评论。

产品


版本

R2023b

Community Treasure Hunt

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

Start Hunting!