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

Folge erstellen mit IF und For-Schleife

 

Ibbes85
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 31.07.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.07.2012, 17:05     Titel: Folge erstellen mit IF und For-Schleife
  Antworten mit Zitat      
Hallo

ich bin gerade dabei mich in Matlab einzuarbeiten, ich möchte eine Zahlenfolge erstellen, welche vom ersten zum zweiten Wert konstant bleibt, dann vom zweiten auf den dritten Wert um einen vordefinierten Wert subtrahiert wird und dann wieder von 3. auf 4. den Wert konstant hält. SPRICH: [1 1 0.5 0.5 0 0 -0.5 -0.5.....]. Ich wusste nicht, wie ich dies am einfachsten anstelle. Ich habe es versucht mit einer If-Schleife integriert in einer For-Schleife. Aber als Ergebnis bekomme ich immer noch meinen Einheitsvektor heraus, nur der letzte Eintrag des Vektors ist subtrahiert. Hier mein Quellcode:

for n = 1:1:10

A = ones(1,11)*3;

if A(n)== A(n+1)
A(n+2)= A(n+1)-0.5;
elseif A(n)> A(n+1)
A(n+2) = A(n+1);
else
A(n+2)= 0;
end

end

Woran liegt das? Es gibt bestimmt auch eine einfachere Methode solch eine Folge zu erstellen? Ich bin für jede Hilfe dankbar.

Gruß Ibbes
Private Nachricht senden Benutzer-Profile anzeigen


flashpixx
Forum-Guru

Forum-Guru


Beiträge: 355
Anmeldedatum: 19.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.07.2012, 17:16     Titel:
  Antworten mit Zitat      
kleine Anregung:
Code:

a = [1 0 2 0 3 0]
b = [0 a(1:end-1] ]

c = a + b
 
Private Nachricht senden Benutzer-Profile anzeigen
 
flashpixx
Forum-Guru

Forum-Guru


Beiträge: 355
Anmeldedatum: 19.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.07.2012, 17:28     Titel:
  Antworten mit Zitat      
eine Matrix ist auch "nur" ein Vektor Razz
Private Nachricht senden Benutzer-Profile anzeigen
 
flashpixx
Forum-Guru

Forum-Guru


Beiträge: 355
Anmeldedatum: 19.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.07.2012, 18:00     Titel:
  Antworten mit Zitat      
Es wäre durchaus hilfreich, wenn Du Deine Antworten auch in diesem Thread postest und mir nicht eine PN mit Deinen Antworten schickst.

Du kannst wie Du es in dem Kopf der Schleife machst die Art und Weise der Zahlenfolge entsprechend setzen, durch die Operation, die ich dargestellt habe, kann ich die Werte um eine Stelle verschieben. Du kannst Dir nun ausrechnen wie Du Deine Vektoren gestallten musst, damit Du z.B. über eine Summe (Differenz, Multiplikation, Division) Deinen gewünschten Zielvektor / - matrix erreichen kannst.

Deine Forschleife durchläuft die Zahlen von 1 bis 10 (den mittleren Wert kann in diesem Fall auch weg lassen) und nun ziehst Du immer bei zwei benachbarten Werten 0.5 ab, sofern die vorher benachbarten Werte gleich sind, das sind sie aber, denn Dein Vektor wird bei jeder Iteration mit 3 initialisiert. Du fasst somit immer die Werte an, die mind. 3 Elemente auseinander liegen und noch nicht verändert wurden, d.h. ich kann aber dadurch dass ich den Initialisierungsvektor nehme und direkt die passenden Stellen modifizieren auch das Ergebnis erreichen

Code:

a = [3 3    3    3 3 3      3]
b = [0 0 -0.5   0 0 -0.5  0 ]
c = a + b;
 


Der Vektor b ist letztendlich ein Nullvektor, von dem ich immer bei jedem dritten Element 0.5 setze.
Code:

b = zeros(1,11);
b = b(3:2:numel(b)) - 0.5;
 


Anhand der Beispiele kannst Du Dir nun überlegen, wie sich Dein Vektor ergeben muss
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.