Main Content

rand

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

    설명

    예제

    cR = rand(n,codist)는 균일하게 분포된 난수로 구성된 n×n 공동분산 행렬을 만들고 codist를 사용하여 워커 전체에 걸쳐 배열 값의 분포를 지정합니다. cR의 각 요소는 0과 1 사이에 속합니다.

    디폴트 codistributor1d 분산 방식이나 codistributor1d 객체 또는 codistributor2dbc 객체에 의해 정의되는 분산 방식을 사용하려면 codist"codistributed"로 지정합니다.

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

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

    cR = rand(sz,codist)는 균일하게 분포된 난수로 구성된 공동분산 배열을 만듭니다. 여기서 크기 벡터 szcR의 크기를 정의합니다. 예를 들어, rand([2 3],"codistributed")는 2×3 공동분산 배열을 만듭니다.

    cR = rand(sz1,...,szN,codist)는 균일하게 분포된 난수로 구성된 sz1×...×szN 공동분산 배열을 만듭니다. 여기서 sz1,...,szN은 각 차원의 크기를 나타냅니다.

    cR = rand(___,datatype,codist)는 기본 유형이 datatype인 균일하게 분포된 난수로 구성된 공동분산 배열을 만듭니다. 예를 들어, rand(1,"single","codistributed")는 공동분산 단정밀도 난수를 만듭니다. 위에 열거된 구문에 나와 있는 크기 인수를 이 구문과 함께 사용할 수 있습니다. 배열의 크기 인수와 데이터형 인수 뒤에 codist를 지정해야 합니다.

    cR = rand(___,"noCommunication")은 워커 간의 통신을 사용하지 않고 균일하게 분포된 난수로 구성된 공동분산 배열을 만듭니다.

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

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

    크기 인수, 데이터형 인수, codist 인수 뒤에 "noCommunication"을 지정해야 합니다.

    cR = rand(___,like=p)는 배열 p를 사용하여 균일하게 분포된 난수로 구성된 공동분산 배열을 만듭니다. 또한 "noCommunication"을 함수 호출의 일부로 지정할 수 있습니다.

    반환된 배열 cR은 기본 유형, 희소성, 실수/복소수 여부가 p와 동일합니다.

    예제

    모두 축소

    rand(난수)로 구성된 1000×1000 공동분산 double형 행렬을 만들고 두 번째 차원(열)을 기준으로 분산되도록 합니다.

    spmd(4)
        C = rand(1000,"codistributed");
    end

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

    rand(난수)로 구성된 1000×1000 공동분산 single형 행렬을 만들고 열을 기준으로 분산되도록 합니다.

    spmd(4)
        codist = codistributor1d(2,100*[1:spmdSize]);
        C = rand(1000,1000,"single",codist);
    end

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

    입력 인수

    모두 축소

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

    • n0이라면 cR은 빈 행렬입니다.

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

    공동분산 배열을 위한 분산 방식으로, 다음 옵션 중 하나로 지정됩니다.

    • "codistributed" — 디폴트 codistributor1d 객체에 의해 정의되는 디폴트 분산 방식을 사용합니다.

    • codistributor1d 객체 — codistributor1d 객체에 정의된 1차원 분산 방식을 사용합니다. 디폴트 1차원 분산 방식을 사용하려면 인수 없이 codistributor1d 함수를 지정합니다.

    • codistributor2dbc 객체 — codistributor2dbc 객체에 정의된 2차원 블록-순환 분산 방식을 사용합니다. 디폴트 2차원 블록-순환 분산 방식을 사용하려면 인수 없이 codistributor2dbc 함수를 지정합니다.

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

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

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

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

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

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

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

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

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

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

    • "double"

    • "single"

    • "logical"

    • "int8"

    • "uint8"

    • "int16"

    • "uint16"

    • "int32"

    • "uint32"

    • "int64"

    • "uint64"

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

    datatype을 지정하지 않으면, 결과로 생성된 공동분산 배열은 기본 유형, 희소성 및 실수/복소수 여부가 p와 동일합니다.

    버전 내역

    R2006b에 개발됨