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

采纳的回答

Jan
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 个)

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by