How to Put a Specific Function Inside a For Loop Depending on the Result of an If Statement?
2 次查看(过去 30 天)
显示 更早的评论
I am currently using something like below. The problem is that for each iteration the if statement is checked and it slows down the execution
function myfun(in1)
for i = 1 : 1000
for j = 1 : 1000
if in1 = '1'
[out2] = myfun2(in2);
elseif in1 = '2'
[out3] = myfun3(in3);
end
end
end
How can i change it to the following where it once first checks whether it is ‘1’ or ‘2’ and then always put myfun2 or myfun3 in the for loop.
function myfun(in1)
if in1 = '1'
[out2] = myfun2(in2);
elseif in1 = '2'
[out3] = myfun3(in3);
end
for i = 1 : 1000
for j = 1 : 1000
EXECUTE myfun2 or myfun3, DEPENDING ON THE IF STATEMENT
end
end
0 个评论
采纳的回答
Jan
2017-3-26
function myfun(in1)
if in1 = '1'
fcn = @myfun2;
arg = in2;
else
fcn = @myfun3;
arg = in3;
end
for i = 1 : 1000
for j = 1 : 1000
out = fcn(arg);
end
end
0 个评论
更多回答(0 个)
另请参阅
类别
在 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!