Matlab (Summe aus Vektoreinträgen bilden)

Neue Frage »

steviehawk Auf diesen Beitrag antworten »
Matlab (Summe aus Vektoreinträgen bilden)
Meine Frage:
Hallo Leute, ich arbeite mich gerade ein wenig in das Programm Matlab ein und habe auch schon einfache Funktionen selber gebastelt, also Vergleich von Zahlen usw.

Nun wollte ich eine weiter Funktion programmieren bzw. erstellen, diese soll mir die Einträge eines Vektors elementweise aufaddieren. Also z.B.:



Da ich aber Vektoren mit beliebigen Einträgen habe, sie haben aber immer länge 7, habe ich den Index i versucht vom ersten Eintrag bis zum letzen Eintrag laufen zu lassen!

Meine Ideen:
So ich habe das jetzt angefangen, Im Editor von Matalb:

function summe = aufsummieren(vektor)

summe = 0;

for i = vektor(1,1:1) : vektor(1,7:7)

summe = summe + i;

end


mit vektor(1,1:1) bekomme ich ja den ersten Eintrag, vektor(1,7:7) den Letzten,

ich habe mir dann den vektor auch im commandwidow definiert, aber es kommt immer die Fehlermeldung

Error in aufsummieren (line 5)
for i= vektor(1,1:1) : vektor(1,7:7)

wenn ich dann die Funktion aufsummieren(vektor) ausführen möchte!

also matlab erkennt wohl nicht, was ich hier machen will unglücklich

wie kann ich den für i nacheinander die einzelnen eiträge des Vektors abrufen?? Den Startwert habe ich einfach auf Null gesetzt, das müsste ja gehen, da es sich nur um Summen handelt!

Vielleicht kann mir ja jemand helfen!!

Danke schon mal!
Airblader Auf diesen Beitrag antworten »

code:
1:
2:
3:
4:
summe = 0;
for ii = 1:7
   summe = summe + vektor(ii);
end


Meinst du so? verwirrt

In jedem Falle sollte man sowas in Matlab unbedingt verhindern. Matlab ist nur dann effizient, wenn man vektorisiert arbeitet und auf Schleifen möglichst verzichtet. Für das Aufsummieren bietet Matlab die interne Funktion sum.

Bitte auch darauf achten, auf i und j als Variablen in Matlab zu verzichten.

air
 
 
steviehawk Auf diesen Beitrag antworten »

Super Danke, genau dise sum - Funktion hat mir gefehlt, die wollte ich dann selber schreiben, aber so ist es viel leichter Augenzwinkern

Danke
Math1986 Auf diesen Beitrag antworten »

Eine andere Möglichkeit wäre die Darstellung der Summe als Skalarprodukt:
code:
1:
[1 2 3]*[1;1;1]
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »