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

for-Schleife mit Schrittweite kleiner 1

 

Fountain

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.08.2013, 10:09     Titel: for-Schleife mit Schrittweite kleiner 1
  Antworten mit Zitat      
Hallo liebe MatLab-Community,

erstmal ein Dankeschoen fuer die vielen informativen Antworten in diesem Board. Hat mir schon oft geholfen. Smile

Ich verzweifel hier allerdings an einem Problem, dass ich ueberhaupt nicht verstehe.

Ich moechte eine for-Schleife mit der Schrittweite 0.1 bauen. Wenn ich diesen Code eingebe (einfaches Beispiel):

Code:
for x=[1:0.1:10]
f(x)=exp(x+2)
end;


kommt aber folgende Fehlemeldung:

Code:
Attempted to access f(1.1); index must be a positive integer or logical.


Ich habe mich gefuehlt schon durch's ganze Netz gelesen und bin immer wieder auf for-Schleifen mit einer Schrittweite kleiner 1 gestossen. Entsprechend wenig nachvollziehen kann ich, wieso das bei mir nicht klappt. Ich wuerde mich total freuen, wenn mich jemand kurz mit der Nase auf den Haken stossen koennte, ich schaffe es scheinbar alleine nicht.

Ich hoffe, der Thread ist in diesem Unterforum richtig.

Mit freundlichen Gruessen
Chris (Fountain)


fekal
Forum-Century

Forum-Century



Beiträge: 124
Anmeldedatum: 08.02.11
Wohnort: Mainz
Version: 2017b
     Beitrag Verfasst am: 16.08.2013, 10:20     Titel:
  Antworten mit Zitat      
Hy,
ja die indizes muessen immer ganze Zahlen sein (1,2,3,4,5...)

das heis du musst fuer den F index eine andere Variable nehmen.
z.B.
Code:

m=1;
for x=[1:0.1:10]
f(m)=exp(x+2)
m=m+1;
end;

Muesste so funktionieren
Beste Gruesse fekal

Zuletzt bearbeitet von fekal am 16.08.2013, 11:03, insgesamt 2-mal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
Kascho
Forum-Century

Forum-Century


Beiträge: 195
Anmeldedatum: 24.03.10
Wohnort: Jena
Version: R2008b ... :(
     Beitrag Verfasst am: 16.08.2013, 10:55     Titel:
  Antworten mit Zitat      
Hi,
die Lösung von fekal sollte prinzipiell funktioniere. Ich würde aber entweder m=0; setzen. Oder die Inkrementierung nach der Berechnung machen. In der Form steht dein erster Wert an der 2ten Stellen, was evtl. verwirren könnte.

Gruß, Kascho
Private Nachricht senden Benutzer-Profile anzeigen
 
fekal
Forum-Century

Forum-Century



Beiträge: 124
Anmeldedatum: 08.02.11
Wohnort: Mainz
Version: 2017b
     Beitrag Verfasst am: 16.08.2013, 11:01     Titel:
  Antworten mit Zitat      
Stimmt,
das hab ich nicht ordentlich gemacht.
Verzeihung. In der Eile hab ich nicht auf die Details geachtet Confused

Beste Gruesse
fekal

So, ich hab`s verbessert
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 17.08.2013, 20:39     Titel: Re: for-Schleife mit Schrittweite kleiner 1
  Antworten mit Zitat      
Hallo Fountain,

Fekals Lösung ist gut. Es gibt drei Alternativen für solche FOR-Schleifen in Matlab:
1.
Code:
index = 1;
for x = 1:0.1:10  % Keine zusätzlichen eckigen Klammern
  index = index + 1
  f(index)=exp(x+2)
end

2.
Code:
data = 1:0.1:10
for index = 1:numel(data)
  f(index)=exp(data(index) + 2);
end

3.
Code:
f = exp((1:0.1:10) + 2);

Die letzte ist eine der Methoden, die Matlab so effizient bei der Programmierung machen.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Fountain

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.08.2013, 08:25     Titel: Geloest
  Antworten mit Zitat      
Super! Vielen Dank an alle, die Loesungen gepostet haben!
 
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.