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

Schleife für jedes Element der Matrix

 

Lennart11

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.07.2015, 09:33     Titel: Schleife für jedes Element der Matrix
  Antworten mit Zitat      
Hallo,
ich möchte eine Matrix normieren, also Mittelwerte und Standardabweichung habe ich schon berechnet. Jetzt muss ich für aber berechnen: x-xquer/s also für jedes Element der Matrix.
Mein Ansatz sieht so aus:

Code:
for index_i = 1:size(matrix)
for index_j = 1:length(matrix)
 Normierte_matrix=(matrix(index_j,:)Mittelwerte)/Standardabweichung


 end
end


Das funktioniert natürlich nicht, weil mit den indexen irgendwas nicht stimmt.
Könnt ihr mir helfen?
edit winkow: bitte code umgebung verwenden.


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 08.07.2015, 09:42     Titel:
  Antworten mit Zitat      
huhu. guck dir mal die docu von size und length an. bei size brauchst du noch einen zusätzlichen parameter und length liefert abhänig von deiner matrix unterschiedliche ergebnisse und ist hier nicht zu empfehlen. außerdem benutzt du den index_i garnicht.

Zitat:
Das funktioniert natürlich nicht,

das ist keine ausführliche fehlerbeschreibung. was klappt nicht. welche fehlermeldungen. weie weichen die ergebnisse von den erwarteten ab?`
da fehlt auch ein minus in der formel.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Lennart11

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.07.2015, 09:50     Titel:
  Antworten mit Zitat      
Oh ja das Minus steht in meinem Code natürlich, habe die Matrix der Übersicht halber für das Forum umbenannt und es dabei gelöscht.
Ich möchte die Formel ja für jedes Element in jeder Spalte und jeder Zeile anwenden, deswegen dachte i und j, aber wo ich die dann in meine Funktion einbringe weiß ich nicht.
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 08.07.2015, 10:06     Titel:
  Antworten mit Zitat      
Zitat:
Ich möchte die Formel ja für jedes Element in jeder Spalte und jeder Zeile anwenden,

welche diemension haben denn mittelwerte und standartabweichung?
für mich sind da zu wenig informationen um sinnvoll zu antworten. wenn es nur skalare sind kannst du die schleifen auch einfach weglassen. wenn nicht musst gucken ob du wirklich matrixdivision machen willst und nicht element by element operation.
es ist immer viel einfacher wenn ein lauffähiges beispiel gepostet wird. sihe dazu auch den thread aus meiner signatur.. sooo muss man viel rumraten.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Lennart11

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.07.2015, 10:10     Titel:
  Antworten mit Zitat      
oh ok sorry.
Also das ist meine Matrix:
0.283048 0.258181 -0.119507
-0.316815 -0.343521 0.065173
0.275078 0.303999 -0.049376
-0.213293 -0.138973 0.159955
0.240691 0.084319 -0.271686
-0.285404 -0.396756 -0.051071
0.241450 0.138410 -0.204852
-0.265881 -0.254539 0.097145
0.299346 0.177314 -0.246783
-0.346576 -0.408639 0.029985
0.333434 0.436037 0.025096
-0.287557 -0.136451 0.279672
0.294774 0.328845 -0.049040
-0.383405 -0.382096 0.121164
0.286600 0.266077 -0.115150
-0.290470 -0.186982 0.220696
0.341295 0.326247 -0.125315
-0.270665 -0.189460 0.186499
0.295035 0.174374 -0.243716
-0.378836 -0.420150 0.066137
0.309408 0.232634 -0.193003
-0.277945 -0.207694 0.174991
0.362652 0.427146 -0.031939
-0.245962 -0.088322 0.274925


Das sind die Mittelwerte jeder Spalte:
1.1614e-009 5.0950e-010 -1.1818e-009

Und das die Standardabweichungen jeder Spalte:
0.30640 0.29108 0.16847
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 08.07.2015, 10:22     Titel:
  Antworten mit Zitat      
Code:
Normierte_matrix=nan(size(matrix));
for k=1:size(matrix,1)
Normierte_matrix(k,:)=(matrix(k,:)-mittelwert)./Standardabweichung
end

das könnte klappen falls es das ist was du berechnenwillst (da bin ich mir nicht sicher)
das kann man auch mit repmat ohne schleife lösen.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Lennart11

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.07.2015, 11:02     Titel:
  Antworten mit Zitat      
Ohh ja das funktioniert, vieeeelen Dank =)
 
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 - 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.