Filter löschen
Filter löschen

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

1 Ansicht (letzte 30 Tage)
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

Akzeptierte Antwort

Jan
Jan am 26 Mär. 2017
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

Weitere Antworten (0)

Kategorien

Mehr zu Startup and Shutdown finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by