我有以下工作功能(a)。该函数负责解决另一个函数中的错误。
function [a] = algorithm1(z)
if (z==0)
j=1;
a=j;
disp('Your computer is switch on from state offline')
elseif (z==1)
j=1;
a=j;
disp('Your computer is working properly')
elseif (z==2)
%j=2; Value 2 for status of rebooting
disp('Your computer is rebooting')
j=1;
a=j;
disp('Your computer is working properly after rebooting')
else
disp('unidentified error')
end
end
我的问题是如何制作另一个function(b)
以上function(a)
作为其解决方案。我希望它会像这样出现
T=100 status 1, your computer is working properly
T=101 status 1, your computer is working properly
T=102 status 2, your computer is working properly after rebooting
.
.
.
T=200 status 1, your computer is working properly
T是循环函数,状态函数(b)是随机生成的。如何将函数(a)赋予函数(b),以便使用函数(a)连续求解错误。
答案 0 :(得分:1)
如果要将函数传递给另一个函数,则需要使用函数句柄an anonymous function。
一般语法如下所示:
handle = @(input1, input2)function_to_call(input1, other_input, input2)
在您的情况下,您可以像这样编写函数b
function b(afunction)
for k = 1:100
afunction(randi([1 2]));
end
end
然后致电b
向a
传递一个句柄。
afunction = @(z)a(z);
% or just: afunction = @a
b(afunction)
或者,如果您的路径上同时显示a
和b
,则只需直接从a
致电b
。
function b()
for k = 1:100
a(randi([1 2]));
end
end