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

Differenz zwischen Matritzen

 

jokoba
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 09.04.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.04.2014, 15:33     Titel: Differenz zwischen Matritzen
  Antworten mit Zitat      
Moin,
Grundlagen: Ich arbeite mit einem Kanal aus dem ich mir mit einem anderen Programm 1000 Ebenen rausschreiben lassen habe. Habe Dementsprechen 1000 Matritzen mit der Größe 7381 x 15. Habe sie mit diesem Code in Matlab einlesen lassen:
Code:

i = zeros(1,1000);
for i = 0:999;
    dateiname = strrep(datei,'###i###',num2str(i));
    data = csvread(dateiname,1);

    x = data(:,13);
    y = data(:,14);
    z = data(:,15);
    u = data(:,1);
    v = data(:,2);
    w = data(:,3);
    u_mean = data(:,4);
    v_mean = data(:,5);
    w_mean = data(:,6);
    Rxx_mean = data(:,7);
    Ryy_mean = data(:,8);
    Rzz_mean = data(:,9);
    Rxy_mean = data(:,10);
    Ryz_mean = data(:,11);
    Rxz_mean = data(:,12);
   
   
    %% Mittelwerte über Ebene
   
    c = i+1
 
    y_mean(c) = mean(y);
    u_mean_ave(c) = mean(u_mean);
    v_mean_ave(c) = mean(v_mean);
    w_mean_ave(c) = mean(w_mean);
    Rxx_mean_ave(c)= mean(Rxx_mean);
    Ryy_mean_ave(c)= mean(Ryy_mean);
    Rzz_mean_ave(c)= mean(Rzz_mean);
    Rxy_mean_ave(c)= mean(Rxy_mean);
    Rxz_mean_ave(c)= mean(Rxz_mean);
    Ryz_mean_ave(c)= mean(Ryz_mean);

    %% u'

    u_strich = u - u_mean;
    v_strich = v - v_mean;
    w_strich = w - w_mean;

end
 

Klappt auch alles wunderbar. Jetzt komme ich allerdings nicht mehr weiter.

Mein Problem ist, dass ich jetzt uA mit der Differenz zwischen den einzelnen Ebenen weiterarbeiten muss. A2-A1;A3-A2;A4-A3 bis 1000 hoch. Ich hoffe, es ist einigermaßen klar geworden, was ich meine.
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: 09.04.2014, 16:19     Titel:
  Antworten mit Zitat      
Hallo,

in deinem Code-Beispiel kommt kein A1, A2, ... vor. Mir ist also nicht klar, worauf sich das bezieht.

Falls du tatsächlich durchnumerierte Variablen verwenden wolltest: das ist keine gute Idee, besser sind Cell Arrays oder, falls es sich um Vektoren handelt, Matrizen.

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

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 09.04.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.04.2014, 17:55     Titel:
  Antworten mit Zitat      
Die A sind meine Matritzen. Also zB A2 ist meine Matrix aus der 2. Ebene meines Kanals. Ich habe 1000 Matritzen und möchte jeweils die beiden "Nachbars"-Matritzen voneinander subtrahieren.
Also
A1-A0
A2-A1
A3-A2
.
.
.
A999-A989
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: 09.04.2014, 19:47     Titel:
  Antworten mit Zitat      
Hallo,

und was hat das nun mit dem Code zu tun?

In welcher Form liegen die Matrizen vor? Tatsächlich durchnumeriert? (Wie gesagt: keine gute Idee)
In welcher Form sollen die Differenzmatrizen gespeichert werden?

Das einfachste dürfte sein, die Matrizen hintereinander in einem 3D-Array anzuordnen und dann
Code:


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

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 09.04.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.04.2014, 10:42     Titel:
  Antworten mit Zitat      
Okay, da ich bisher (leider) sehr wenig mit Matlab gearbeitet habe, wird es auf diesem Wege nichts mehr. Habe deswegen nun einen anderen Ansatz.
Meine benötigten Werte sind nun in einer einzigen Matrix, die die Größe
von 7581 x 1000 hat.
Möchte nun die Spalten nach dem Schema von oben von einander abziehen und daraus später Mittelwerte rausziehen.
Mir fehlt allerding der Schritt der Subtraktion:
Spalte2-Spalte1
Spalte3-Spalte2
Spalte4-Spalte3
.
.
.
Spalte1000-Spalte999
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 10.04.2014, 10:48     Titel:
  Antworten mit Zitat      
Code:

_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
jokoba
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 09.04.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.04.2014, 10:56     Titel:
  Antworten mit Zitat      
Ah wie dumm.
Vielen Dank, mein Programm ist nun komplett!
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.