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

Ergebnisse als Matrix anzeigen lassen

 

acoc-aloc

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.11.2008, 21:30     Titel: Ergebnisse als Matrix anzeigen lassen
  Antworten mit Zitat      
Hallo zusammen,

ich möchte jedes Ergebnis in Form einer Matrix haben.

Beispiel:

i | Summe

1 | 1
2 | 2
3 | 3
4 | 4
5 | 5



Code:

SummeX=0;
x=[1 2 3 4 5]

for (i=1:1:size(x,1))        
       SummeX=x(i)+SummeX
end


Als Ergebnis soll die Summe untereinander angezeigt werden. Also:

1
2
3
4
5

Leider weiß ich als Anfänger nicht, wie ich die nächste Schleife einbauen soll? Hab es versucht, aber da kommt nur Mist raus! Kann mir da bitte jemand helfen?


Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.11.2008, 23:05     Titel:
  Antworten mit Zitat      
Du könntest direkt in eine Matrix speichern:
Code:
n=(1:5)'
M=[n cumsum(n)]


In Deiner Schleife hast Du Dich wohl verschrieben, es müsste doch bestimmt
Code:
heißen, oder?
Ausserdem überschreibst Du SummeX bei jedem Durchgang mit dem aktuellen Wert, die vorherigen sind verloren. Da müsstest Du etwas schreiben wie SummeX(i) = ..., also bei jedem Durchgang an eine eigene Stelle eines Vektors (oder eben einer Matrix) speichern. Im Allgemeinen versucht man aus Geschwindigkeitsgründen in Matlab auf Schleifen zu verzichten.
 
acoc-aloc

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.11.2008, 23:44     Titel:
  Antworten mit Zitat      
Das habe ich versucht, die Variante ist nicht schlecht, aber derselbe Effekt.
Hier ein Code um mein Problem zu verdeutlichen:

Code:

x=[1 2 3 4 5]';
SummeX=0;
for (i=1:1:size(x,1))        
       SummeX=1/x(i)
end
 


Das spuckt Matlab aus:

Code:

SummeX =

     1


SummeX =

    5.000000000000000e-001


SummeX =

    3.333333333333333e-001


SummeX =

    2.500000000000000e-001


SummeX =

    2.000000000000000e-001
 


So habe ich mir die Ergebnisse auch vorgestellt. Dies will ich aber in Form einer Matrix haben!

Code:


Wäre in diesem Falle schon richtig, weil ich nur eine Spalte haben will bzw habe.

Wie schon erkannt, ändert sich die SummeX bei jedem Durchlauf und somit auch die Matrix. Es müsste doch eine Möglichkeit geben, sich jede einzelne Summe zu merken und erst am Ende der Schleife als Matrix auszugeben?

Noch eine ganz andere Frage, wie kann ich das Exponent Ergebnis verhindern?
 
Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.11.2008, 00:09     Titel:
  Antworten mit Zitat      
Nein, die Variante hat nicht denselben Effekt.
Nein, size(x,1) war oben nicht richtig, jetzt aber schon, da Du x transponiert hast.
Du schreibst nicht in einen Vektor, Du überschreibst immernoch jedes mal SummeX.
Den Exponenten im Ergebnis bekommst Du weg, wenn Du die richtige Formel hinschreibst, SummeX=1/x(i) ist wohl falsch.

Wenn Du es unbedingt mit einer Schleife machen willst:
Code:
clear all;
n=5;
summe=0;
M=zeros(n,2);
for i=1:n
    M(i,1)=i;
    summe=summe+i;
    M(i,2)=summe
end

aber
Code:
n=(1:5)'
M=[n cumsum(n)]
ist besser.
 
a

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.11.2008, 00:33     Titel:
  Antworten mit Zitat      
Bin zwar bissl dumm aber lernfähig Wink Vielen Dank, hat mir sehr weitergeholfen!
 
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.