How can I fix value of vector inside for loop ?
1 回表示 (過去 30 日間)
古いコメントを表示
how can I fixed the value of " select_angles " in case the condition is satisfied ? I tried to fix it via using repeat element function but didn't work.
I appreciate any help.
angles = [ 20 45 60 30 90];
randomize_angles=randperm(numel(angles));
for i=1:numel(randomize_angles)
select_angle = angles(randomize_angles(i))
if condition
select_angle = repelem(pickangle11,1)
end
end
condition = something
2 件のコメント
Torsten
2023 年 3 月 4 日
how can I fixed the value of " select_angles " in case the condition is satisfied ?
Not clear what you mean.
採用された回答
Sulaymon Eshkabilov
2023 年 3 月 4 日
Your assignment is not quite clear but to the best understandinbg of mine. Note that repelem(A,1) if A is a scalar, the result is A. This is how your assignment can be solved, e.g.:
angles = [20 45 60 30 90];
randomize_angles=randperm(numel(angles))
for i=1:numel(randomize_angles)
select_angle = angles(randomize_angles(i))
if select_angle==angles(i)
select_angle = angles(i)
end
end
2 件のコメント
その他の回答 (1 件)
Voss
2023 年 3 月 4 日
angles = [ 20 45 60 30 90];
randomize_angles=randperm(numel(angles));
selection_made = false;
for i=1:numel(randomize_angles)
if ~selection_made
select_angle = angles(randomize_angles(i))
end
if condition
selection_made = true;
end
end
2 件のコメント
Voss
2023 年 3 月 6 日
After the condition is satisfied, yes, the for loop continues to iterate, but, no, another angle is not assigned to select_angle.
If you want to stop the for loop as soon as the condition is satisfied, use break:
angles = [ 20 45 60 30 90];
randomize_angles=randperm(numel(angles));
for i=1:numel(randomize_angles)
select_angle = angles(randomize_angles(i))
if condition
break
end
end
% now select_angle is your angle, use it from here on
参考
カテゴリ
Help Center および File Exchange で Loops and Conditional Statements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!