如何使用2个功能创建随机操作?

时间:2017-10-01 14:53:09

标签: matlab octave

示例:我具有de功能Y和功能X。

我希望Octave做Y(随机算子)X

然后一次又一次,但随机运算符,并按照正在进行的方式注册结果。有可能吗?

我的尝试:

A = ['*';'+';' - ';'/'];

for i:(1:10)
op1 = A (randi([1 4]),1);
op2 = A (randi([1 4]),1);
op3 = A (randi([1 4]),1);
op4 = A (randi([1 4]),1);
op5 = A (randi([1 4]),1);
op6 = A (randi([1 4]),1);
result = 1 op1 4 op2 25 op3 2 op4 23 op5 6 op6 2
end;

1 个答案:

答案 0 :(得分:2)

不涉及使用evalstr2func的可能解决方案可能是使用anonynous functions数组。

% Define the input values
v1=25
v2=5
% Define the array of anonymous functions, one for each operator
f={@(x,y) (x+y);
   @(x,y) (x-y);
   @(x,y) (x*y);
   @(x,y) (x/y)}
% Randomly call one of the anonymous functions
for i=1:10
   r=randi([1,4],1,1)
   result(i)=f{r}(v1,v2)
end

希望这有帮助,

Qapla'