示例:我具有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;
答案 0 :(得分:2)
不涉及使用eval
和str2func
的可能解决方案可能是使用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'