MATLAB 내에서 숫자를 메모리에 저장하는 것이 가장 좋은 방법이지만 for 루프 중에 행렬/배열에 특정 하위 세트 만 쓰는 것이 가장 좋습니다. 또한 설정에 대한 루프 내 문제에 대한 적절한 고군분투하고있다 :MATLAB에 임시로 번호 저장
나는 특정 길이 (X = 100)의 선, 그리고 특정 위치 (POS = 50)에서 장벽이있다. 여러 라운드의 샘플링 (이 경우 1000 회)을 수행하고 각 샘플 내에서 특정 양의 난수 (p)를 생성합니다. 표시된 이미지에서 4 개의 숫자가 생성됩니다. p> pos 일 때 가장 작은 숫자를 취하고 p < pos 일 때 가장 큰 숫자를 취해 포물선을 빼서 그 장벽을 포함하는 가능한 작은 조각 사이의 거리를 알려줍니다. 그래서이 예제에서는 b와 c 사이의 거리를 제공합니다.
MATLAB에서 가능합니까?
x = 100;
sample = 1000; %number of rounds of sampling to do
pos = 50; %position of barrier
nn = 1:12; %the number of random numbers to generate for each round of sampling i.e. 1000 rounds generating 1 number, 1000 rounds generating 2 numbers and so on
len1 = 0;
len2= x ;
for i = 1:sample
p(i) = int16(rand()*x)
if (p(i)<pos) && (p(i)>len1)
len(i) = p(i)
end
end
내가
if (p(i)>pos) && (p(i)<len2)
내 생각의 라인을 따라 문을 일시적으로 작은으로 LEN1 및 LEN2의 값을 대체 할 수 있다면 두 번째 필요할 것 알고 : 나는 지금까지 같이있어 루프가 기본 len1 및 len2 값으로 다시 시작되기 전에 각 샘플링 라운드 중에 생성되는 최대 수입니다. 그래도 더 좋은 방법이있을 수 있습니다. 내가 제대로 문제를 이해한다면
어떤 도움은 매우 극명하게 될 것이다,
생성 된 모든 난수가 장벽의 한쪽면에 있으면 어떻게됩니까? –
죄송합니다 -이 사건을 언급하는 것을 잊었습니다. 이 경우 len1 또는 len2의 원래 값은 여전히 남아 있으며 빼기에 사용됩니다. 따라서 'b'만 생성 된 숫자라면 출력은 100-b가됩니다. – AnnaSchumann
변수'nn'은 무엇을합니까? 당신이 사용하지 않는 것 같습니다. 또한 변수'sam'은 무엇입니까? 그것은 '샘플'과 같은가요? –