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

4D Matrix adressieren

 

elchico
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 87
Anmeldedatum: 04.05.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.05.2017, 21:25     Titel: 4D Matrix adressieren
  Antworten mit Zitat      
Hallo zusammen,

zu Anfang:
Ich beschäftige mich im Rahmen meiner Doc-Arbeit in Chemie "nebensächlich" mit Matlab, und das seit ca. 2-3 Wochen.

Mein Input:
Ich habe folgende Daten:
Elektroden: 9 Stück (Werte: 1-9)
Spektren: 1000 Stück (Werte: 1-1000)
Frequenz: 51 Werte (Werte lese ich von meinen Files ein)
Z: 51 Werte (Werte lese ich von meinen Files ein)
R: 51 Werte (Werte lese ich von meinen Files ein)
C: 51 Werte (Werte lese ich von meinen Files ein)

Mein Ziel:
Dabei spanne ich in meiner Vorstellung eine Art 4D-Matrix auf: Ich kann pro Elektrode und pro Spektrum und pro Frequenz ein Tripple an Werten betrachten (Z,R,C). Z,R und C hängen untereinander nicht voneinander ab.

Meine Matrix soll also 4 Dimensionen haben:
1. Dimension: Elektrode 1-9
2. Dimension: Spektrum 1-1000
3. Dimension: Frequenz 51 Werte
4. Dimension: Ein Array mit 3 Werten (je Z,R,C).

Meine Vorstellung:
Ich habe eine Matrix mit zeros in entsprechende Dimension und Größe. Anschließend Fülle ich die 1. Dimension mit den Elektroden auf, wobei die Schleife von 1-9 durchläuft und der Iterator in die Matrix eingetragen wird. Im Anschluss wird die Anzahl der Spektren eingetragen (indem die Werte 1-1000 eingetragen werden). Nun werden die Frequenzwerte in Dimension 3 und die 4. Dimension mit den Arrays befüllt.

Mein Problem:
Ich habe jetzt einige Stunden darüber nachgedacht und ausprobiert und gegoogelt, aber ich bekomme es nicht hin.
Das Problem liegt darin, eine bestimmte Dimension meiner Matrix mit Werten zu füllen, OHNE die anderen zu beeinflussen. So möchte ich die erste Dimension der Matrix mit den Werten [1 2 3 4 5 6 7 8 9] füllen, ohne dass die anderen Dimensionen angefasst werden usw.
Zweites Problem:
Lohnt sich das für die Elektrodenziffern überhaupt? Schließlich könnte ich ja durch den Index zumindest diese Dimension adressieren (da ja Index = Wert). Aber trotzdem brauche ich ja eine 4D Matrix => was steht dann in der 1. Dimension drin, wenn nicht die Elektrodennummern?

Was ich bisher habe:
Eigentlich alles bis zum 1. Problem: Ich lade meine ganzen Dateien (= Spektren) nacheinander ein (um die Werte Frequenz, Z,R,C zu extrahieren) und um die Spektrenanzahl zu definieren (hier: 1000). Außerdem denke ich, werde ich dann im Anschluss zu einem cellArray wechseln müssen, um ein Tripple à la {Z, R, C} einfügen zu können, oder?
Nun habe ich vorerst (für eine 3D Matrix ohne das Tripple - zur Lösung von Problem 1) folgenden Code:
Code:

allData = zeros(ElectrodeNumber, spektraNumber, frequencyNumber);

for n = 1:ElectrodeNumber
    for m = 1:size(spektraNumber(1,: ))
        for f = 1:frequencyNumber
            allData(n,m,: ) = frequencies;
        end
    end
end
 

(mit frequencies = 51 Werte mit den entsprechenden Frequenzen. Die restlichen Variablen sind, denke ich, selbsterklärend).


Sorry für den überlangen Text. Ich wollte aber das ganze so deutlich wie möglich erklären.
Über Hilfe wäre ich sehr dankbar. Gibt es evtl. für das spätere Problem des cellArrays eine bessere Möglichkeit? Es müssten theoretisch auch kein Tripple sein, sondern könnte auch anders gelöst werden ... Da bin ich offen Wink

Danke und LG
elchico

EDIT:
keine Ahnung, warum er mir die Sachen nicht unterstrichen hat ... Wer das weiß - ich ändere es gern. So sieht es ja schlimm aus ... Shocked Sad

Zuletzt bearbeitet von elchico am 04.05.2017, 21:53, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

mein Vorschlag wäre ein 9x1000 Strukturarray mit Feldern F, Z, R, C.

Bei der Frage, wie die Daten organisiert werden sollen, sollte man auch nicht die Frage vernachlässigen, wie später auf sie zugegriffen werden soll.
Mein Vorschlag ist gut geeignet, wenn du später F, Z, R und/oder C für bestimmte Elektroden und Spektren(nummer) benötigst.

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

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 87
Anmeldedatum: 04.05.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.05.2017, 21:47     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Hallo,

mein Vorschlag wäre ein 9x1000 Strukturarray mit Feldern F, Z, R, C.

Bei der Frage, wie die Daten organisiert werden sollen, sollte man auch nicht die Frage vernachlässigen, wie später auf sie zugegriffen werden soll.
Mein Vorschlag ist gut geeignet, wenn du später F, Z, R und/oder C für bestimmte Elektroden und Spektren(nummer) benötigst.

Grüße,
Harald


Hallo Harald,

danke für die schnelle Antwort.
Das klingt auf den ersten Blick deutlich einfacher als meines Laughing
Ich schau mir das mal bis zum Wochenende an und würde mich bei Bedarf nochmal melden.

LG
elchico

PS: kurze Off-Topic Frage, da du jetzt der erste bist, der antwortet: Weißt du, warum das mit der Formatierung nicht funktioniert in meinem Beitrag? Davon bekommt man ja Augenkrebs ...

Zuletzt bearbeitet von elchico am 04.05.2017, 21:54, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

Zitat:
PS: kurze Off-Topic Frage, da du jetzt der erste bist, der antwortet: Weißt du, warum das mit der Formatierung nicht funktioniert in meinem Beitrag? Davon bekommt man ja Augenkrebs ...

Nein, leider nicht.
Das einzige, was ich mir vorstellen kann: hast du "BBCode in diesem Beitrag deaktivieren" angewählt? Das wäre eine Erklärung.

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

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 87
Anmeldedatum: 04.05.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.05.2017, 21:54     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Hallo,

Zitat:
PS: kurze Off-Topic Frage, da du jetzt der erste bist, der antwortet: Weißt du, warum das mit der Formatierung nicht funktioniert in meinem Beitrag? Davon bekommt man ja Augenkrebs ...

Nein, leider nicht.
Das einzige, was ich mir vorstellen kann: hast du "BBCode in diesem Beitrag deaktivieren" angewählt? Das wäre eine Erklärung.

Grüße,
Harald


So einfach wie genial. Danke Wink
Schönen Abend noch.
elchico
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.