0
이 계산은 값 (a
)을 가져 와서 루프의 각 반복에 대해 두 계산 중 하나를 수행하는 것을 목표로합니다. 각 순차 루프는 새 계산 된 값을 가져 와서 다시 계산합니다. 각 루프에서 출력 된 값을 유지하고 싶습니다. 단지로부터 a
오히려 5보다 원하는 결과 1 개의 값을 리턴로MATLAB - 반복 계산의 각 반복에 대한 출력을 만드는 방법
a = 0;
b = logical([1 0 1 1 0]);
for i = 1:length(b)
if b(i) == 1
a = 1*2 + a*2
else
a = a*3
end
end
이 예 올바르지 않은 예를 들면 : 5 개 각 루프상에서 사용되는 계산을 결정하는 논리 어레이를 사용한다 이 예는 다음과 같습니다.
a = 2 6 14 30 90
제발 도와주세요. 많은 감사합니다.
몇 matlab에 관용적 항목 :'numel (b)는 '길이'보다 더 적합 할 것 (나)'. 일반적으로'a = [a, a_next] '대신'a (end + 1) = a_next'를 사용합니다. 그리고 출력을'a = NaN ([1 numel (b) +1)]로 미리 할당하는 것이 더 낫습니다. 루프의 각 패스에서 전체 배열의 비효율적 인 재 할당을 피하기 위해 a (1) = 0;'을 사용하고'a (i + 1) = a_next'를 사용하여'a '에 할당합니다. –