Konvertierung einer 'for' Schleife mit einem Inkrement von 25 von C nach MATLAB

8

Ich habe eine for Schleife geschrieben in C:

%Vor%

Wie kann ich es in MATLAB konvertieren?

    
suter 12.12.2011, 11:46
quelle

3 Antworten

6

Die for Schleife

%Vor%

kann auf diese Weise in MATLAB for loop konvertiert werden:

%Vor%     
Mithun Sasidharan 12.12.2011, 11:51
quelle
10

Die MATLAB for-Schleifensyntax ist

%Vor%

wobei values eins von

ist
  • start:end
  • start:step:end oder
  • ein Array von Werten.

Das Formular start:end nimmt einen Schritt von 1 an, während Sie einen Schritt (oder ein Inkrement) von 25 wollen, verwenden Sie also das zweite Formular. Aus Ihrer Frage generiert for(int i = 0; i < 1000; i+=25) eine Liste der Zahlen 0 25 50 ... 950 975 , dh es enthält nicht 1000 (beachten Sie i < 1000; in der for -Schleife), daher können wir end=1000 nicht in out verwenden MATLAB-Syntax. Verwenden Sie stattdessen end = 1000-25 = 975 :

%Vor%

ergibt die gleichen Werte von i wie das C-Äquivalent.

Hinweis : Siehe meinen Kommentar zu Mithun Sasidharans Antwort. Seine Antwort liefert unterschiedliche Zahlen für die C- und MATLAB for-Schleifen (und er scheint die for aus seiner MATLAB-Antwort fallen gelassen zu haben). Seine Antwort gibt 0 25 50 ... 950 975 für die C-Schleife und 0 25 50 ... 950 975 1000 für seinen MATLAB-Code.

Bearbeiten : Die Antwort von Aashish Thite wirft einen wichtigen Punkt in Bezug auf for-Schleifen und Array-Indizierung auf, die sich zwischen C und MATLAB unterscheiden.

    
Chris 12.12.2011 13:55
quelle
2

Wenn Sie "i" als Index zum Durchsuchen eines Arrays verwenden möchten, funktioniert for i=0:25:1000 nicht. Der Index des ersten Elements in einem Array von Matlab ist 1. Verwenden Sie also for i=1:25:1000

    
Aashish Thite 12.12.2011 12:14
quelle

Tags und Links