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

Objekte oder cells

 

pariser

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.04.2013, 17:38     Titel: Objekte oder cells
  Antworten mit Zitat      
Hallöchen,
Ich möchte gerneObjekte verwenden, dabei soll es wie folgt aufgebaut werden

Auto.kraftfahrzeugstypen.auto.räder = 4
Auto.kraftfahrzeugstypen.auto.farbe = rot

und so weiter und anschließend

Auto.kraftfahrzeugstypen.motorad.räder = 4;
Auto.kraftfahrzeugstypen.motorad.farbe = blau


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.434
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.04.2013, 18:01     Titel:
  Antworten mit Zitat      
Hallo,

und was genau ist nun die Frage?
Man kann hier Strukturen oder Objekte sinnvoll verwenden.

Entscheidend ist die Frage, was man mit den Konstrukten dann anstellen will.

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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.04.2013, 18:39     Titel:
  Antworten mit Zitat      
Ich möchte jetzt bestimmte eigenschaften definieren, also die variablen mit bestimmten werten initialisieren, anschleißend will ich es meinen kommilitonnen geben, die sollen nur noch die werte ändern können, um ein zuvor erstelltes programm aufzurufen.
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.04.2013, 18:45     Titel:
  Antworten mit Zitat      
TYP.Auto(1).Name = 'VW';
TYP.Auto(1).konstante = 30;
TYP.Auto(1).schaden= 0;

TYP.Motorad(1).Name = 'Suzuki';
TYP.Motorad(1).konstante = 30;
TYP.Motorad(1).schaden= 0;

TYP.Traktor(1).Name = 'Aebi';
TYP.Traktor(1).konstante = 30;
TYP.Traktor(1).schaden= 0;


Ich hab es jetzt so definiert... ich habe eine Simulations funktion, als unterprogramm.. ich möchte auto, motorad, traktor in der schleife aufrufen und die variablen abfangen und in die funktion übergeben.

function(Name, konstante, schaden, ...)
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.434
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.04.2013, 20:36     Titel:
  Antworten mit Zitat      
Hallo,

das klingt so, als ob Objekte sinnvoll sein könnten.

Mir scheint es allerdings naheliegender, die Art des Fahrzeugs (Auto, Motorrad, Traktor) auch als Eigenschaften zu definieren - sofern die Simulation nicht sehr stark unterscheidet, um welche Art Fahrzeug es sich handelt. Wenn es starke Unterschiede gibt, könnte es sinnvoller sein, eine Klasse Fahrzeug zu definieren und Klassen Auto, Motorrad und Traktor davon zu vererben.
Die Simulationsfunktion wäre in jedem Fall eine Methode.

Sofern du das noch nicht getan hast, würde ich mich mal von vorne in die objektorientierte Programmierung mit MATLAB einlesen.
http://www.mathworks.com/help/relea.....oriented-programming.html

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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.04.2013, 21:13     Titel:
  Antworten mit Zitat      
danke für den hinweis...
ich hab mich in das thema schon eingelesen, und mein ansatz wollte ich jetzt mal testen... wie würdest du es denn machen...

was meinst du mit objekten...
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.434
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.04.2013, 21:15     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
und mein ansatz wollte ich jetzt mal testen...

Das ist eine gute Idee.

Zitat:
wie würdest du es denn machen...

Das hängt wie gesagt von deiner Simulationsfunktion ab.

Zitat:
was meinst du mit objekten...

Die Frage klingt nun etwas merkwürdig, wo du doch sagst, dass du dich mit dem Thema beschäftigt hast? Kannst du das etwas präzisieren?

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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.04.2013, 21:38     Titel:
  Antworten mit Zitat      
Ich hab jetzt eine m-file in der folgende Einstellungen gemacht werden...

TYP.Auto(1).Name = 'VW';
TYP.Auto(1).konstante = 30;
TYP.Auto(1).schaden= 0;

TYP.Motorad(1).Name = 'Suzuki';
TYP.Motorad(1).konstante = 30;
TYP.Motorad(1).schaden= 0;

TYP.Traktor(1).Name = 'Aebi';
TYP.Traktor(1).konstante = 30;
TYP.Traktor(1).schaden= 0;


im Hauptprogramm möchte ich jetzt meine Funktion aufrufen, die soll eigentlich in der schleife
im ersten Durchlauf auto-variablen an die Funktion übergeben
im zweiten lauf motorad variablen übergeben.

meine frage ist es jetzt, ob ich es effizienter ausbauen könnte und wie ich es in der schleife am besten die variablen anspreche...

ich verstehe leider nicht, was du nicht verstehst... könntest du konkret was fragen.
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.434
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.04.2013, 21:55     Titel:
  Antworten mit Zitat      
Hallo,

du hast dich also doch entschieden, mit Strukturen zu arbeiten - okay.
Das Format der Strukturen ist meines Erachtens eher ungünstig. Was ich machen würde:

Code:
FZG(1).Typ = 'Auto';
FZG(1).Name = 'VW';
FZG(1).konstante = 30;
FZG(1).schaden= 0;

FZG(2).Typ = 'Motorrad';
FZG(2).Name = 'Suzuki';
FZG(2).konstante = 30;
FZG(2).schaden= 0;
 

etc.

Dann kannst du problemlos über die Komponenten iterieren:
Code:
for I = 1:numel(FZG)
erg{I} = deineFunktion(FZG(I))
end


In der Funktion kannst du dann mit der Punktnotation auf die Feler zugreifen.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.04.2013, 22:01     Titel:
  Antworten mit Zitat      
jetzt bin ich bissl verwirrt.

findest du die verwendung von strukuren ungünstig oder den meinen aufbau...
da wäre die frage, ob es mit objekten effizienter wäre
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.434
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.04.2013, 22:12     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
findest du die verwendung von strukuren ungünstig oder den meinen aufbau...

Deinen Aufbau. Ich verwende ja in meinem Vorschlag selbst Strukturen.

Zitat:
da wäre die frage, ob es mit objekten effizienter wäre

Effizienter nicht, lediglich formaler und strukturierter.

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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.04.2013, 16:26     Titel:
  Antworten mit Zitat      
könntst du vielleicht, falls du zeit hast, das beispiel in objekten wandeln. Danke
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.434
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.04.2013, 16:52     Titel:
  Antworten mit Zitat      
Hallo,

mach doch mal den Anfang. Bei Problemen helfe ich gerne.

Vor allem solltest du dir, bevor du anfängst, überlegen, wie das ganze sinnvoll aufzubauen ist - siehe auch mein Kommentar von gestern, 21:36 (erster Teil).

Grüße,
Harald
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: 08.04.2013, 09:00     Titel:
  Antworten mit Zitat      
Hallo,

Falls es noch nicht klar ist: Harald's Vorschlag zum Aufbau des Structs hat einen großen Vorteil:
Code:
FZG(1).Typ = 'Auto';
% versus:
TYP.Auto(1).Name = 'VW';

Bei Harald's Vorschlag wird der Typ des Autos nicht als Name des Feldes dargestellt, sondern als Wert des Felds "Typ". Die Namen der Variablen und Felder sollten möglichst abstrakt die Klasse der enthaltenen Daten beschreiben, aber selbst keine problem-relevante Information tragen. Die Namen selbst als Träger einer Information zu verwenden wäre eine Art Meta-Programming und ebenso sinnvoll, wie z.B. jeden Morgen seinen eigenen Namen zu ändern und das aktuelle Körpergewicht anzuhängen. Das erlaubt zwar ganz bestimmte Fragen effizient zu lösen, aber effizient ist das nicht.

Gruß, Jan72.3kg
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.04.2013, 13:55     Titel:
  Antworten mit Zitat      
Ich hab mich jetzt nun für folgende Struktur entschieden

Code:
TYP.Auto(1).Name = 'VW';
TYP.Auto(1).farbe = 'blau';
TYP.Auto(1).tueren = 5;
TYP.Auto(1).motorad = 'suzuki';
TYP.Auto(1).motorad = 'schwarz';
TYP.Auto(1).motorad = 0;


ich möchte nun beispielsweise beispielsweise schön immer die variablen ansprechen und in der schleife der definierten funktion übergeben

Code:
while()
    {
     figure
     plot(ausgeben(Name, farbe, tueren);
    }
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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 - 2024 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.