WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Strukturen subtrahieren

 

Autchirion
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 23.08.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.08.2011, 16:37     Titel: Strukturen subtrahieren
  Antworten mit Zitat      
Hiho,

Ich habe eine Struktur in der eine Matrix (2D) gespeichert ist. Wenn ich in Matlab den Befehl ausführe:
Code:
name(1).daten(1:25,1:2)=name(1).daten(1:25,1:2)+17

Wird auf jedes dieser Felder der Wert 17 addiert, das ist wunderbar.
Allerdings hat meine Struktur natürlich mehr als nur 1 Wert, sondern n Werte, weswegen ich gerne eine matlab File schreiben würde, welches das Problem automatisch durcharbeitet. Meine Überlegung war:
Code:

for i=1:n
    name(i).daten(1:25,1:2)=name(i).daten(1:25,1:2)+17
end
 

Das ist gut und schön, will aber leider nicht, Fehlermeldung in Matlab:
Zitat:
??? Undefined function or method 'minus' for input arguments of type 'struct'.


Hat jemand eine Idee was da los ist, warum das so funktioniert, aber in einer .m Datei nicht? Habe es jetzt auch schon mit einer Mehrfachschleife, also:
Code:

for i=1:n
    for ii=1:25
        for iii=1:2
             name(i).daten(ii,iii)=name(i).daten(ii,iii)+17
        end
    end
end
 

Die Namen der Funktionen sowie Variablen habe ich für das Forum abgeändert, aber eigentlich sollte das ja kein Problem sein... Ich Arbeite mit Matlab R2009B.

Vielen Dank schon einmal für die Hilfe!
Auti
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 26.08.2011, 17:35     Titel: Re: Strukturen subtrahieren
  Antworten mit Zitat      
Hallo Autchirion,

Das klingt sehr merkwürdig. Bitte poste den orginalen Code. Die Fehlermeldung kann nämlich gar nicht zu dem geposteten Code gehören, da dort kein MINUS vorkommt.
Der gepostete Code sieht übrigens korrekt aus.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Autchirion
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 23.08.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.08.2011, 09:56     Titel:
  Antworten mit Zitat      
Code:

for i=1:n
    for ii=1:25
        for iii=1:2
             name(i).daten(ii,iii)=name(i).daten(ii,iii)-17
        end
    end
end
 

entschuldigen, ich hatte das Rückgängig machen gepostet, hatte es einmal als Einzelbefehl durchgeführt hatte.
Einzelbefehl:
Code:

name(1).daten(1,1)=name(1).daten(1,1)-17
 

das hat komischerweise wunderbar geklappt.

Danke für die schnelle Antwort, leider hatte ich über das Wochenende kein Internet, der Router hat sich tot gestellt... jetzt geht er auf einmal wieder. Smile

[edit]
ich habe den Fehler, Matlab verträgt keinen Bindestrich im Dateinamen, sowas fällt auf, wenn man gerade mal alles raus löscht und keine Rechenoperation vor kommt... Smile
Dennoch Danke für eure hilfe!
[/edit]
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.08.2011, 11:05     Titel:
  Antworten mit Zitat      
Hallo,

Anmerkung dazu: in 2011a ist es gar nicht mehr möglich, eine Datei aus dem Editor heraus unter einem solchen problematischen Namen zu speichern.

@ Autchirion: Ich vermute, dass du mit einer älteren MATLAB-Version arbeitest. Da wirst du leider selbst darauf achten müssen, dass du einen "vernünftigen" Dateinamen wählst.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Autchirion
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 23.08.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.08.2011, 11:17     Titel:
  Antworten mit Zitat      
ja, 2009b um genau zu sein... leider haben wir nur das im Geschäft, ich hätte nicht erwartet, dass es schon bei solchen Kleinigkeiten Unterschiede gibt.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.08.2011, 11:39     Titel:
  Antworten mit Zitat      
Hallo,

in den letzten Releases wurde wohl nicht zuletzt auf eine Verbesserung der Nutzerfreundlichkeit wertgelegt.
Wenn die Möglichkeit eines Updates besteht (und bei euch nichts gravierendes dagegenspricht), würde ich sie definitiv nutzen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.