Trong Matlab, tôi đang thực hiện các phép tính trong một vòng lặp for nhưng cố gắng tìm cách bỏ qua các lần lặp trong vòng lặp nếu đáp ứng các tiêu chí nhất định. Tôi đã viết ra một ví dụ nhanh để minh họa câu hỏi của tôi.Trong MATLAB, làm thế nào tôi có thể bỏ qua một số được xác định trước cho lặp vòng lặp nếu đáp ứng các tiêu chí nhất định?
Trong mã bên dưới, vòng lặp for sẽ trải qua các lần lặp 1 và 2 và xuất như mong đợi vào r. r (1) sẽ là 1 và r (2) sẽ là 2. Khi vòng lặp for chạy qua lần lặp 3, giá trị 20 sẽ được đặt vào r (3). Sau khi điều này xảy ra, sau đó tôi muốn vòng lặp for bỏ qua 5 lần lặp tiếp theo và đi thẳng đến vòng lặp 8 của vòng lặp for.
for i=1:1:10
if i==3
r(i)=20;
i = i+5;
else
r(i) = i;
end
end
Kết quả thực tế cho r là như sau:
r =
1 2 20 4 5 6 7 8 9 10
Tuy nhiên, tôi muốn cho kết quả xuất hiện tương tự như sau. (XIN LƯU Ý rằng tôi không tìm cách để lấp đầy r mong muốn (4):. R (7) với 0 nhưng thay vì tìm cách để bỏ qua cho lần lặp vòng 4 đến 7 hoàn toàn)
r =
1 2 20 0 0 0 0 8 9 10
Nếu ai có lời khuyên , điều đó sẽ được đánh giá cao. Cảm ơn bạn!
Cảm ơn bạn đã cung cấp thông tin bao gồm cả bổ sung về phân bổ trước! – Aaron
Không vấn đề gì, tôi thường làm việc với các vectơ lớn, nhưng nó không phải là một thói quen xấu để phát triển! :) –
BTW, lý do mã của bạn không hoạt động là MATLAB thực sự lưu trữ "tham chiếu" của riêng nó vào i được sử dụng trong vòng lặp, vì vậy trong khi bạn có thể nhận được i, bạn không thể chỉnh sửa giá trị. Tôi quên chính xác cách thức hoạt động này, nhưng tôi nhớ khi tôi mới bắt đầu lập trình, tôi đã xem xét điều này, thật thú vị haha – Shaun314