How to Put a Specific Function Inside a For Loop Depending on the Result of an If Statement?

1 ビュー (過去 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 件)

Community Treasure Hunt

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

Start Hunting!

Translated by