How to code NESTED CYCLES
显示 更早的评论
f=[3 6 3 9]
b=[5 8 10 12]
a is a function with parameter f and b!
for l=1:numel(b)
for i=1:numel(f)
a(f(i),b(l))
end
end
but this is a problem:
if b is empty the function won't loop me with "f"
采纳的回答
更多回答(2 个)
Reverse the 2 loops, then it loops on f
f=[3 6 3 9]
b=[]
for i=1:numel(f)
f(i)
for l=1:numel(b)
a(f(i),b(l))
end
end
2 个评论
pipor
2023-9-9
Bruno Luong
2023-9-9
编辑:Bruno Luong
2023-9-9
Split in three loops if you have to
for i=1:numel(f)
for l=1:numel(b)
% ... do something with both f(i) and b(l)
a(f(i),b(l))
end
end
for i=1:numel(f)
% ... do something with f(i) ALONE
end
for l=1:numel(b)
% ... do something with b(l) ALONE
end
Image Analyst
2023-9-9
Check them in advance:
if isempty(b)
% What to do
return;
end
if isempty(f)
% What to do
return;
end
for l=1:numel(b)
for i=1:numel(f)
something = a(f(i),b(l))
end
end
2 个评论
pipor
2023-9-9
移动:Dyuman Joshi
2023-9-9
Image Analyst
2023-9-10
Correct. Why would you want to continue if one is empty? If you do you'll just get an error. If you can "fix" the situation, do so inside the if -- for example Star set them to nan instead. If you can't fix the situation, you should just exit the code after alerting the user.
类别
在 帮助中心 和 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!