How to save certain values in a FOR loop

Hi, i am running several FOR-loops, as shown below, and want to save the step-values which satisfies the if-command. Right now I just stop the script at the first values which satisfies the criteria, but as there propably will be more than one answer, I would like to save all the different combinations in a matrix, or a file. How do I do this?
for k = 17.12:0.001:17.13
for c0 = 0.1:0.1:0.5
for c1 = 1:1:5
for ac = 0.1:0.1:0.5
for mc = 0.2:0.1:0.7
for a = 0:0.1:0.2
for m = 0:0.1:1
propellerdesign;
%This is the main script which runs as it should
if T_req<= T && T <= 1.001*T_req && cav_points == 0
return
end
end
end
end
end
end
end
end

 채택된 답변

Elias Gule
Elias Gule 2016년 4월 1일

0 개 추천

just before the start of the first for loop, define an empty matrix, this will be the storage for all the valid step-values. Replace the return statement with a statement that updates your storage matrix.
m = [];
for k = 17.12:0.001:17.13
for c0 = 0.1:0.1:0.5
for c1 = 1:1:5
for ac = 0.1:0.1:0.5
for mc = 0.2:0.1:0.7
for a = 0:0.1:0.2
for m = 0:0.1:1
propellerdesign;
%This is the main script which runs as it should
if T_req<= T && T <= 1.001*T_req && cav_points == 0
m = [m T_req]; % This causes your matrix to expand as necessary
end
end
end
end
end
end
end
end

댓글 수: 3

Alternatively, you can do the following:
valid_count = 0
m = nan*ones(10000,1) % A column vector of 10000 nans
%% Replace m = [m T_req] with the following lines
valid_count = valid_count + 1
m(valid_count) = T_req
%% After the loops, type the following
m = m(~isnan(m)) % Removes all the nan entries in from the matrix m
Anna
Anna 2016년 4월 3일
Thank you so much! the second alternative worked out great :)
Manu K Sajan
Manu K Sajan 2019년 9월 30일
Finallly!!!! after lots of googling, this method works perfectly!!!Thanks

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Logical에 대해 자세히 알아보기

질문:

2016년 4월 1일

댓글:

2019년 9월 30일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by