Ich habe einige Skripts in Matlab, die für eine lange Zeit in Ordnung ist. gestern scheint es, dass die Feldnamen einer Struktur Zugriff mit xxx.fields
aufgehört zu arbeiten, ein vereinfachtes Beispiel-Code wird hier gezeigtMatlab-Skript .field-Funktion funktioniert nicht mehr
a.b.one = 1;
a.b.two = 2;
a.b.three = 3;
all_fields = fieldnames(a.b); % This works
all_fields = a.b.fields; % This used to work, it suddenly stopped working.
Die Fehlermeldung ist ‚Referenz auf nicht existierendes Feld‚Felder‘.‘, während auf einigen Computern all_fields = a.b.fields;
noch arbeiten.
Ich habe ein paar Maschinen mit verschiedenen Versionen von Matlab (von 2014a bis 2016a). Der Code lief vor einigen Tagen reibungslos und niemand hatte das Skript seit letztem Jahr geändert. Wir haben auch keine Updates/Patches manuell auf Matlab angewendet. Hat Matlab einige Auto-Update-Funktion?
Die Verwendung von filednames
wird für uns funktionieren, aber es erfordert eine erhebliche Menge an unserer bestehenden Code-Basis neu zu schreiben.
Jede Hilfe wäre willkommen. Vielen Dank.
Nun in Ihrer zweiten Aussage haben Sie Tippfehler Zugriff ** Felder ** ** anstelle von ** Felder, die ein Problem sein könnte. Aber abgesehen davon wäre es eine gute Idee, ein reproduzierbares Beispiel zu veröffentlichen. – mgilbert
Danke für den Kommentar, ich habe mit einem Beispiel aktualisiert. – Joe
Ihr Beispiel liefert diesen Fehler nicht, a.b.fields löst einen Fehler "Verweis auf nicht existierende Feldfelder" aus. Dies ist ein erwartetes Verhalten, da die Struktur "b" innerhalb der Struktur "a" kein Feld mit dem Namen "fields" aufweist. – mgilbert