2017-10-01 1 views
0

예 : 나는2 가지 기능으로 무작위 작업을 만들려면 어떻게해야합니까?

다시 다시, 그러나 임의 사업자로 드 기능 Y 및 기능 X.

내가 옥타브가 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

은 어떻게 될 것 ('str2num') –

+0

eval''쓴 또는 설탕 코팅 평가 함께 가능 보인다 유일한 방법? –

+1

이것을 사용해야 할 경우, 문제의 접근 방법을 변경해야한다고 알려줍니다. –

답변

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 '

+2

대신 f = {@ plus, @ 빼기, @ 시간, @ rdivide}로 정의 할 수 있습니다. ' – rahnema1

+0

해당 사항 없음 한 번에 두 개의 숫자와 한 명의 연산자 만있는 경우에만 가능합니다. –

관련 문제