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

Elemente einer Matrix summieren

 

Manuel145

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.05.2019, 20:44     Titel: Elemente einer Matrix summieren
  Antworten mit Zitat      
Hallo zusammen, ich hätte folgende Frage:
Ich habe eine Matrix der Form (nx1) und würde gerne auf alle Elemente der Matrix die vorherigen aufsummieren
Also (a1,a2,a3,...,an) -> ((a1),(a1+a2),(a1+a2+a3),...,(a1+a2+a3+...+an))
Dafür habe ich eine Schleife geschrieben, die aus einem mir unbekannten Grund nicht funktioniert wie sie soll:
data1 ist die (nx1) Matrix
Code:
k = 1
while k ~= length(data1)+1
      Matrix = ones(length(data1),1);
      Matrix(k) = sum(data1(1:k));
      k = k+1;
end

Als Ergebnis bekomme ich
Matrix = (1,1,1,...,(a1+a2+a3+...+an))
Wenn ich zur Überprüfung das ganze "von Hand" eingebe, funktioniert es wie es soll.
Code:
Matrix = ones(length(data1),1);
Matrix(1) = sum(data1(1:1));
Matrix(2) = sum(data1(1:2));
Matrix(3) = sum(data1(1:3));
Matrix(4) = sum(data1(1:4));

(Genau das, was eigentlich in der Schleife passieren sollte.) Problem an der Sache ist nur, dass das einen nicht unbedeutenden Aufwand mit sich zieht und die Ausgangsmatrizen unterschiedlich groß sind.
Vielleicht kann mir jmd erklären, warum ich nicht das gewünschte Ergebnis erhalte, bzw wie ich es zum laufen bekomme. Möglicherweise geht das ja auch viel einfacher.

Danke im voraus
MFG


Harald
Forum-Meister

Forum-Meister


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

mit dem Befehl ones in der Schleife überschreibst du die vorherigen Daten immer wieder. Vor allem aber geht das viel einfacher: cumsum .

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Manuel145

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.05.2019, 22:30     Titel:
  Antworten mit Zitat      
Super. Vielen 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.