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!