mám for
slučka napísaná v C:
for (int i = 0; i < 1000; i+=25)
Ako ju môžem previesť na MATLAB?
odpovede:
6 pre odpoveď č. 1Na for
slučka
for (int i = 0; i <= 1000; i+=25)
je možné previesť na MATLAB pre slučke týmto spôsobom:
>> for i = [0:25:1000]
# Code
end
10 pre odpoveď č. 2
MATLAB pre slučku syntax je
for i = values
program statements
:
end
kde values
je jedným z
start:end
start:step:end
, alebo- pole hodnôt.
Formulár start:end
predpokladá, že krok 1
, keďže chcete krok (alebo prírastku) 25, tak použite ďalšie tlačivo.Z vašej otázky, for(int i = 0; i < 1000; i+=25)
generuje zoznam čísel 0 25 50 ... 950 975
, t. j. neobsahuje 1000
(Všimnite si, i < 1000;
v for
slučka), takže môžeme "t použiť end=1000
v syntaxi MATLAB. Namiesto toho použite end = 1000-25 = 975
:
for i = 0:25:975
program statements
:
end
poskytne rovnaké hodnoty ako i
ako ekvivalent C.
Poznámka: pozri môj komentár k odpovedi Mithuna Sasidharana. Jeho odpoveď dáva rôzne čísla pre C a MATLAB pre slučky (a zdá sa, že upustil for
z jeho odpovede MATLAB). Jeho odpoveď dáva 0 25 50 ... 950 975
pre slučku C a 0 25 50 ... 950 975 1000
pre jeho kód MATLAB.
editovaťOdpoveď: Aashish Thite vyvoláva dôležitý bod pre indexovanie slučiek a polí, ktoré sa líšia medzi C a MATLAB.
2 pre odpoveď č. 3
Ak sa chystáte používať index i na skenovanie cez pole, for i=0:25:1000
nebudem pracovať. Index prvého prvku v poli matlab je 1. Takže použite for i=1:25:1000