Main Content

Cette page a été traduite par traduction automatique. Cliquez ici pour voir la dernière version en anglais.

randi

Créer un tableau codistribué d'entiers aléatoires uniformément distribués

    Description

    cR = randi(r,n,codist) crée une matrice codistribuée n-by-n d'entiers aléatoires uniformément distribués dans la plage définie par r et utilise codist pour spécifier la distribution des valeurs du tableau entre les workers.

    • Si r est un scalaire, la fonction crée des entiers aléatoires compris dans la plage 1 à r.

    • Si r est un vecteur, la fonction crée des entiers aléatoires compris entre r(1) et r(2).

    Spécifiez codist comme "codistributed" pour utiliser le schéma de distribution codistributor1d par défaut ou le schéma de distribution défini par un objet codistributor1d ou codistributor2dbc.

    Lorsque vous créez le tableau codistribué dans un job communicant ou un bloc spmd, la fonction crée un tableau sur chaque worker. Si vous créez un tableau codistribué en dehors d'un job communicant ou d'un bloc spmd, le tableau est stocké uniquement sur le worker ou le client qui crée le tableau codistribué.

    Par défaut, le tableau codistribué a le type sous-jacent double.

    exemple

    cR = randi(r,sz,codist) crée un tableau codistribué d'entiers aléatoires uniformément distribués où le vecteur de taille sz définit la taille de cR. Par exemple, randi(5,[2 3],"codistributed") crée un tableau codistribué 2 sur 3 d'entiers aléatoires entre 1 et 5.

    cR = randi(r,sz1,...,szN,codist) crée un tableau codistribué sz1-by-...-by-szN d'entiers aléatoires uniformément distribués entre 1 et r. sz1,...,szN indique la taille de chaque dimension.

    cR = randi(___,datatype,codist) crée un tableau codistribué d'entiers aléatoires uniformément distribués avec le type sous-jacent datatype. Par exemple, randi([1,5],1,"int8","codistributed") crée un entier aléatoire codistribué de 8 bits entre 10 et 50. Vous pouvez utiliser cette syntaxe avec n'importe lequel des arguments de taille dans les syntaxes précédentes. Vous devez spécifier codist après les arguments de taille du tableau et de type de données.

    cR = randi(___,"noCommunication") crée un tableau codistribué d'entiers aléatoires uniformément distribués sans utiliser la communication entre les workers.

    Lorsque vous créez de très grands tableaux ou que votre job communicant ou votre bloc spmd utilise de nombreux Workers, la communication worker-worker peut ralentir la création du tableau. Utilisez cette syntaxe pour améliorer les performances de votre code en supprimant le temps requis pour la communication worker-worker.

    Conseil

    Lorsque vous utilisez cette syntaxe, certaines étapes de vérification des erreurs sont ignorées. Utilisez cette syntaxe pour améliorer les performances de votre code après avoir prototypé votre code sans spécifier "noCommunication".

    Vous devez spécifier "noCommunication" après les arguments taille, type de données et codist.

    cR = randi(___,like=p) utilise le tableau p pour créer un tableau codistribué d'entiers aléatoires uniformément distribués. Vous pouvez également spécifier "noCommunication" dans le cadre de l'appel de fonction.

    Le tableau renvoyé cR a le même type sous-jacent, la même parcimonie et la même complexité (réelle ou complexe) que p.

    Exemples

    réduire tout

    Créez une matrice double codistribuée de 1 000 x 1 000 de valeurs randi de 0 à 12, distribuées par sa deuxième dimension (colonnes).

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

    Avec quatre workers, chaque worker contient un morceau local de C de 1 000 x 250.

    Créez une matrice single codistribuée de 1 000 x 1 000 de valeurs randi de 1 à 4, distribuées par ses colonnes.

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

    Chaque worker contient un morceau local de 100 by-spmdIndex de C.

    Arguments d'entrée

    réduire tout

    Plage de valeurs de sortie, spécifiée sous forme d’entier scalaire ou vectoriel.

    • Si r est un scalaire, la fonction crée des entiers aléatoires compris dans la plage 1 à r.

    • Si r est un vecteur, la fonction crée des entiers aléatoires compris entre r(1) et r(2).

    Taille de la matrice carrée, spécifiée sous forme d'entier.

    • Si n est 0, alors cR est une matrice vide.

    • Si n est négatif, alors la fonction le traite comme 0.

    Schéma de distribution pour un tableau codistribué, spécifié comme l'une de ces options:

    • "codistributed" — Utilise le schéma de distribution par défaut défini par l'objet codistributor1d par défaut.

    • Objet codistributor1d — Utilise le schéma de distribution unidimensionnel défini dans un objet codistributor1d. Pour utiliser le schéma de distribution 1D par défaut, vous pouvez spécifier la fonction codistributor1d sans arguments.

    • Objet codistributor2dbc — Utilise le schéma de distribution cyclique par blocs bidimensionnel défini dans un objet codistributor2dbc. Pour utiliser le schéma de distribution cyclique par blocs 2D par défaut, vous pouvez spécifier la fonction codistributor2dbc sans arguments.

    Taille de chaque dimension, spécifiée sous forme de vecteur ligne d՚entiers. Chaque élément de ce vecteur indique la taille de la dimension correspondante :

    • Si la taille d'une dimension est 0, alors cR est un tableau vide.

    • Si la taille d'une dimension est négative, la fonction la traite comme 0.

    • Au-delà de la deuxième dimension, randi ignore les dimensions de fin d'une taille de 1. Par exemple, randi(10,[3 1 1 1],"codistributed") produit un vecteur codistribué 3 sur 1 d'entiers aléatoires uniformément distribués.

    Exemple : [2 3 4] crée un tableau codistribué 2 x 3 x 4.

    Taille de chaque dimension, spécifiée sous forme d'arguments distincts de valeurs entières.

    • Si la taille d'une dimension est 0, alors cR est un tableau vide.

    • Si la taille d'une dimension est négative, la fonction la traite comme 0.

    • Au-delà de la deuxième dimension, la fonction ignore les dimensions de fin d'une taille de 1.

    Type de données sous-jacent du tableau renvoyé, spécifié comme l'une de ces options:

    • "double"

    • "single"

    • "logical"

    • "int8"

    • "uint8"

    • "int16"

    • "uint16"

    • "int32"

    • "uint32"

    • "int64"

    • "uint64"

    Prototype de tableau à créer, spécifié comme tableau codistributed.

    Si vous ne spécifiez pas datatype, le tableau codistribué résultant a le même type sous-jacent, la même parcimonie et la même complexité (réelle ou complexe) que p.

    Historique des versions

    Introduit dans R2014a