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

Zu viele Matrizen -> Vereinfachung ?

 

bumbumquietsch*
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 55
Anmeldedatum: 17.10.11
Wohnort: München
Version: R2011b
     Beitrag Verfasst am: 19.10.2011, 14:38     Titel: Zu viele Matrizen -> Vereinfachung ?
  Antworten mit Zitat      
Servus Leute,

Ich hab mir ein Programm geschrieben, bei dem eine Vielzahl von Matrizen erzeugt werden.
Meine Hautpmatrix MAIN[3000x120] hat sehr viele Messwerte. Mein Programm filtert die Messwerte durch geeignete Schleifen etc. raus und schreibt diese dann in neue Matrizen. Da ich sehr feine und viele Differenzierungen habe entstehen dadruch viele neue Matrizen (ca.70) bei denen man leicht den Überblick verlieren kann. Die letzte Matrix hat beispielsweise folgende schreibweise:

S_E_S+_h_23_05_1500

und davon gibt es noch sehr sehr sehr viel mehr, einfach zu viele! Da das Programm weiterverwendet werden soll/muss wäre ein bessere Überblick von Vorteil (ich schreibe eine Dokumentation/Ein Wiki dazu, nichts destotrotz muss es einfacher gehn)

Desweiteren geht es um die Datenverarbeitung, es ist sehr komplex diese Matrizen immer aufzurufen usw. Hier schleichen sich trotz Achtsamkeit viele Fehler ein.

Ich habe schon die Möglichkeit von Records miteinbezogen, aber diese Möglichkeit geht aufgrund der weiteren Datenverarbeitung nicht ?

Habt ihr irgendwelche vorschläge ? Vielleicht eine Matrix in der ich alles reinstopfen kann ? Bin über jeden Vorschlag und Anregung offen, wäre auch über detailierte Beschreibungen dankbar Smile Ich hoffe ihr habt etwas für mich!

MFG
Private Nachricht senden Benutzer-Profile anzeigen


F4z3r

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.10.2011, 14:20     Titel:
  Antworten mit Zitat      
Würde mich ehrlich gesagt auch mal interessieren. Hat keiner irgendne idee ?
 
_Peter_
Moderator

Moderator


Beiträge: 537
Anmeldedatum: 08.12.10
Wohnort: ---
Version: 7.10, 2010a
     Beitrag Verfasst am: 20.10.2011, 14:36     Titel:
  Antworten mit Zitat      
Hallo bumbumquietsch*,
ohne entsprechenden Code wird man dir nicht helfen können. Diesen solltest du bei so einer Anfrage schon mitposten.

bumbumquietsch* hat Folgendes geschrieben:

Die letzte Matrix hat beispielsweise folgende schreibweise:

S_E_S+_h_23_05_1500


Ist das der name der Matrix? Dann nutzt du wahrscheinlich eval? Das ist keine gute Idee. Bei Bedarf hier im Forum mal nach eval suchen und einen der vielen Beiträge von Jan dazu durchlesen.

Je nachdem wie du das vorhast, kann man ein Cell-Array nutzen, eine 3d-Matrix oder ein struct. Das kommt aber drauf was für Daten du hast und wie du diese Verarbeiten willst. Sprich du musst den Code posten um dir effektiv helfen zu können...
_________________

Gruß
Peter
_________________
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht? Oder der MATLAB Hilfe?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
bumbumquietsch*
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 55
Anmeldedatum: 17.10.11
Wohnort: München
Version: R2011b
     Beitrag Verfasst am: 20.10.2011, 19:04     Titel:
  Antworten mit Zitat      
Servus und einen schönen Abend Smile

Hey Peter!
Danke für den Hinweis, nur leider ist mein Code 6000 Zeilen lang Very Happy Deswegen konnte ich nix posten.

Grob gefasst geht es um folgendes: Ich habe eine Matrix mit über 1300 zeilen und 18 Spalten, die jeweils einem Wert entsprechen.
Danach Baue ich einen Suchalgorithmus auf der sich immer feiner aufgliedert.
Er sucht werte und speichert diese in einer Matrix ab. In dieser neuen Matrix sucht er wieder werte und speichert dieser wieder in einer neuen ab usw. usw.

Dabei entstehen sehr viele Matrizen: ( Hier sind immer die Namen angegeben)
1. Matrix: S
2. Matrix: S_E
3. Matrix: S_E_S+
4. Matrix: S_E_S+_h_ usw.

und das natürlich sehr stark vervielfacht. Im Endeffekt kommen dann circa 100 Matrizen auf die ich gerne iwie zusammenfassen würde und natürlich auch weiterverarbeiten kann.

Ich hoffe, dass meine Frage jetzt evtl. etwas klarer ist ?!
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 20.10.2011, 19:47     Titel:
  Antworten mit Zitat      
Du musst ja auch nicht den ganzen Code posten...aber zumindest den relenvanten Teil oder ein Bsp, wie du die Matrizen erstellst.

Wie Peter aber schon schrieb, hört sich die Erstellung der Matrizen sehr stark nach eval an, wo von nur abzuraten ist. Erstelle dir besser eine Struktur...z.B. so

Code:

Mystruct(1).name = 'Matrixname';
Mystruct(1).values = [1 2;3 4];
Mystruct(2).name = ...
 
Private Nachricht senden Benutzer-Profile anzeigen
 
bumbumquietsch*
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 55
Anmeldedatum: 17.10.11
Wohnort: München
Version: R2011b
     Beitrag Verfasst am: 21.10.2011, 08:09     Titel:
  Antworten mit Zitat      
Code:
%Sucht alle Wertezeilen, die in S+(NUR IN S_EINFACH)
idx=find(S_Einfach(:,6)==1);
%Schreibt alle Messwerte, die in S+ gefahren wurden in die Matrix
%S_Einfach_S+
S_Einfach_S+=S_Einfach(idx,:);


so ist das quasi aufgebaut!
Er sucht in einer Matrix die entsprechenden Werte und schreibt Sie in die neuen Matrix rein!

Welchen Vorteil bringt mir Struct ? Also ich habe doch deswegen auch die gleiche Anzahl an Matrixen oder nicht ?
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 21.10.2011, 10:48     Titel:
  Antworten mit Zitat      
Zitat:
Welchen Vorteil bringt mir Struct ? Also ich habe doch deswegen auch die gleiche Anzahl an Matrixen oder nicht ?


Man kann dann wesentlich einfacher darauf zugreifen/damit arbeiten. Natürlich bleibt die Anzahl gleich...wie soll das auch anders gehen? Irgendwie müssen die Ergebnisse ja gespeichert werden. Du hast sie dann aber in der Struktur zusammengefasst und nicht unzählige einzelne Matrizen.
Private Nachricht senden Benutzer-Profile anzeigen
 
bumbumquietsch*
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 55
Anmeldedatum: 17.10.11
Wohnort: München
Version: R2011b
     Beitrag Verfasst am: 21.10.2011, 11:50     Titel:
  Antworten mit Zitat      
Okay hab grad bisschen rumgespielt, scheint das ganz zu vereinfachen. Jetzt wollte ich noch wissen, wenn ich so einen Struct neu generiere. Beispielsweise Struct 'Freunde'
Dann möchte ich eine Liste mit Namen generien, also schreib in diesen Struct Freunde `Tobias` 'Andreas' usw.
Wenn ich jetzt für Tobias eine Adresse anlegen will, muss ich einen neuen Struct beginnen, oder ? Also ich kann nicht im Struct 'Freunde' einen sog. UNTERSTRUCT einfügen, oder ? Wenn ja, wie wird das aufgebaut ?
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: 21.10.2011, 12:00     Titel:
  Antworten mit Zitat      
Hallo,

es gibt verschiedene Arten, eine Struktur aufzubauen.
Sinnvoll wäre z.B.

Code:
data(1).name = 'Tobias';
data(1).adresse = 'Berlin';
data(2).name = 'Andreas';
data(2).adresse = 'München';

oder auch
Code:
data.namen = {'Tobias', 'Andreas'};
data.adressen = {'Berlin', 'München'};
oder auch (nicht sooo sinnvoll)
Code:
data.tobias = 'Berlin';
data.andreas = 'München';


Unterstrukturen werden angelegt mit:
Code:
struktur.unterstruktur.feld = ...

Dabei kann es auch mehrere Ebenen der Verschachtelung geben.

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.