Chciałbym pobrać dwie stałe z tablicy constants
na raz, ponieważ nie chcę iść jeden po drugimte stałe, ponieważ jest to czasochłonne; Zamiast tego porównuję zmiany, które powodują, i reagują tylko wtedy, gdy istnieje duża zmiana między efektami dwóch stałych. Zapętlam jedną próbkę constant
w tablicy constants
na raz w Matlabie 2016a
constants=[45 90 180 360 720 1440 2880 5760]";
for constant=constants
...
end
Chciałbym jednak pobierać dwie stałe na raz przez jedną pętlę, na przykład pseudokod
for constant1,constant2=constants
...
end
Jak możesz pobrać dwie stałe? constants
w jednym dla pętli Matlaba?
Odpowiedzi:
1 dla odpowiedzi № 1Coś takiego?
for index = 1:length(constants) - 1
c1 = constants(index);
c2 = constants(index + 1);
end
Inną opcją jest zdefiniowanie funkcji, która sparuje każdy element z następnym elementem w tablicy -
function result = pairAdjacent(array)
result = [array(1:end-1) ; array(2:end)];
end
a następnie zrobić
for constant = pairAdjacent(constants)
c1 = constant(1);
c2 = constant(2);
end
Przypomnij sobie, że kiedy używasz notacji
for elem = array
// Now elem is a single column from array
end
zmienna elem
jest przypisywany kolejno do każdego z kolumny z array
, więc twoja tablica constants
musi być tablicą 1xN, aby działało poprawnie.