Main Content

randi

균일하게 분포된 정수형 난수로 구성된 공동분산 배열 만들기

    설명

    예제

    X = randi(r,n)r로 정의된 범위에서 균일하게 분포된 정수형 난수로 구성된 n×n 공동분산 행렬을 만듭니다.

    • r이 스칼라인 경우 함수는 1에서 r 사이의 정수형 난수를 만듭니다.

    • r이 벡터인 경우 함수는 r(1)에서 r(2) 사이의 정수형 난수를 만듭니다.

    사용자가 통신 작업 또는 spmd 블록에서 공동분산 배열을 만들면, 함수는 각 워커에 배열을 만듭니다. 사용자가 통신 작업 또는 spmd 블록 외부에서 공동분산 배열을 만들면, 공동분산 배열이 만들어지는 워커 또는 클라이언트에만 배열이 저장됩니다.

    기본적으로 공동분산 배열의 기본 유형은 double입니다.

    X = randi(r,sz1,...,szN)1에서 imax까지 균일하게 분포된 정수형 난수로 구성된 sz1×...×szN 공동분산 배열을 만듭니다. sz1,...,szN은 각 차원의 크기를 나타냅니다.

    X = randi(r,sz)는 크기 벡터 szX의 크기를 정의하는 균일하게 분포된 정수형 난수로 구성된 공동분산 배열을 만듭니다. 예를 들어, randi(codistributed(5),codistributed([2 3]))15 사이의 정수형 난수로 구성된 2×3 공동분산 배열을 만듭니다.

    X = randi(___,datatype)은 기본 유형이 datatype인 균일하게 분포된 정수형 난수로 구성된 공동분산 배열을 만듭니다. 예를 들어, randi(codistributed(5),"int8")15 사이의 공동분산 8비트 정수형 난수를 만듭니다. 위에 열거된 구문에 나와 있는 입력 인수를 이 구문과 함께 사용할 수 있습니다.

    X = randi(___,codist)는 codistributor 객체 codist를 사용하여 균일하게 분포된 정수형 난수로 구성된 공동분산 배열을 만듭니다.

    codistributor 객체 codist를 사용하여 워커의 메모리에 배열 값의 분포를 지정합니다. codistributor 생성에 대한 자세한 내용은 codistributor1dcodistributor2dbc 항목을 참조하십시오.

    X = randi(___,codist,"noCommunication")은 워커 간의 통신을 사용하지 않고 균일하게 분포된 정수형 난수로 구성된 공동분산 배열을 만듭니다. codist 또는 codist,"noCommunication"을 지정할 수 있지만 둘 다 지정할 수는 없습니다.

    매우 큰 배열을 생성하는 경우 또는 통신 작업 또는 spmd 블록이 많은 워커를 사용하는 경우 워커 간 통신으로 인해 배열 생성이 느려질 수 있습니다. 워커 간 통신에 필요한 시간을 없앰으로써 코드의 성능을 개선하려면 이 구문을 사용하십시오.

    이 구문을 사용하면 일부 오류 검사 단계를 건너뜁니다. "noCommunication"을 지정하지 않고 코드 프로토타입을 만든 후 코드의 성능을 개선하려면 이 구문을 사용하십시오.

    X = randi(___,"like",p)는 배열 p를 사용하여 균일하게 분포된 정수형 난수로 구성된 공동분산 배열을 만듭니다. datatype 또는 "like"를 지정할 수 있지만 둘 다 지정할 수는 없습니다.

    반환된 배열 X는 기본 유형, 희소성 및 복잡도(실수 또는 복소수)가 p와 동일합니다.

    예제

    모두 축소

    0에서 12 사이의 randi 값으로 구성된 1000×1000 공동분산 double형 행렬을 만들고 두 번째 차원(열)을 기준으로 분산되도록 합니다.

    spmd(4)
    C = randi([0 12],1000,'codistributed');
    end

    4개의 워커가 있는 경우 각 워커는 C의 1000×250 국소 조각을 포함합니다.

    1에서 4 사이의 randi 값으로 구성된 1000×1000 공동분산 single 행렬을 생성하고 열을 기준으로 분산되도록 합니다.

    spmd(4)
    codist = codistributor('1d',2,100*[1:numlabs]);
    C = randi(4,1000,1000,'single',codist);
    end

    각 워커는 C의 100×labindex 국소 조각을 포함합니다.

    입력 인수

    모두 축소

    출력 값의 범위로, codistributed 정수 스칼라 또는 정수 벡터로 지정됩니다.

    • r이 스칼라인 경우 함수는 1에서 r 사이의 정수형 난수를 만듭니다.

    • r이 벡터인 경우 함수는 r(1)에서 r(2) 사이의 정수형 난수를 만듭니다.

    정사각 행렬의 크기로, codistributed 정수로 지정됩니다.

    • n0이라면 X는 빈 행렬입니다.

    • n이 음수라면 함수는 이를 0으로 처리합니다.

    각 차원의 크기로, codistributed 정수 값의 별도 인수로 지정됩니다.

    • 차원의 크기가 0이라면 X는 빈 배열입니다.

    • 차원의 크기가 음수라면 함수는 이를 0으로 처리합니다.

    • 두 번째 차원을 넘어서면 함수는 크기가 1인 후행 차원을 무시합니다.

    각 차원의 크기로, codistributed 정수 행 벡터로 지정됩니다. 이 벡터의 각 요소는 해당 차원의 크기를 나타냅니다.

    • 차원의 크기가 0이라면 X는 빈 배열입니다.

    • 차원의 크기가 음수라면 함수는 이를 0으로 처리합니다.

    • 두 번째 차원을 넘어서면 randi는 크기가 1인 후행 차원을 무시합니다. 예를 들어, randi(codistributed([3 1 1 1]))은 균일하게 분포된 정수형 난수로 구성된 3×1 공동분산 벡터를 만듭니다.

    예: sz = codistributed([2 3 4])는 2×3×4 공동분산 배열을 만듭니다.

    반환된 배열의 기본 데이터형으로, 다음 옵션 중 하나로 지정됩니다.

    • "double"

    • "single"

    • "logical"

    • "int8"

    • "uint8"

    • "int16"

    • "uint16"

    • "int32"

    • "uint32"

    • "int64"

    • "uint64"

    Codistributor로, codistributor1d 또는 codistributor2dbc 객체로 지정됩니다. codistributor를 만드는 방법에 대한 자세한 내용은 codistributor1dcodistributor2dbc의 도움말 페이지를 참조하십시오. 디폴트 분산 방식을 사용하려면 인수 없이 codistributor 생성자를 지정할 수 있습니다.

    만들려는 배열 프로토타입으로, codistributed 배열로 지정됩니다.

    버전 내역

    R2014a에 개발됨