lenarray
Précédent | Opcodes et opérateurs de l'orchestre | Suivant

## lenarray

lenarray — Evalue la taille ou le nombre de dimensions d'un tableau.

## Description

Evalue la taille ou le nombre de dimensions d'un tableau.

## Syntaxe

    ir lenarray karray[, iwhich]

    kr lenarray karray[, iwhich]

## Initialisation

karray -- tableau à interroger. Peut avoir n'importe quelle dimension.

iwhich -- sélectionne la dimension dont on veut évaluer la taille. S'il est inférieur ou égal à zéro, le nombre de dimensions est retourné. Vaut 1 par défaut, comme pour un vecteur.

## Execution

kr -- longueur du vecteur.

karray -- tableau à interroger.

Si la dimension interrogée dépasse celles du tableau ou si le tableau n'est pas initialisé, la valeur -1 est retournée.

## Exemples

Voici un exemple de l'opcode lenarray. Il utilise le fichier lenarray.csd.

Exemple 434. Exemple de l'opcode lenarray.

Voir les sections Audio en Temps Réel et Options de la Ligne de Commande pour plus d'information sur l'utilisation des options de la ligne de commande.

    <CsoundSynthesizer>
    <CsOptions>
    -n -m128 ;no sound output, reduced messages
    </CsOptions>
    <CsInstruments>
    ;example by joachim heintz
    sr = 44100
    ksmps = 32
    nchnls = 1
    0dbfs = 1

      instr 1 ;simple example
    kArr[]  fillarray 1, 2, 3, 4 ;fill array manually
            printks "Length of kArr = %d\n\n", 0, lenarray(kArr) ;print out its length
            turnoff ;only do this in the first k-cycle
      endin

      instr 2 ;random array length
    iNumEls random  1, 11 ;create random number between 1 and 10
    kArr[]  init    int(iNumEls) ;create array of this length
            printks "Random length of kArr = %d\n", 0, lenarray(kArr) ;print out
            turnoff
      endin

      instr 3 ;fill random array length with random elements
    iNumEls random  1, 11 ;create random number between 1 and 10
    kArr[]  init    int(iNumEls) ;create array of this length
            printks "Random length of kArr = %d\n", 0, lenarray(kArr) ;print out

    ;fill
    kIndx   =       0 ;initialize index
      until kIndx == lenarray(kArr) do
    kArr[kIndx] rnd31 10, 0 ;set element to random value -10...10
    kIndx   +=      1 ;increase index
      od

    ;print
    kIndx   =       0 ;initialize index
      until kIndx == lenarray(kArr) do
    printf("kArr[%d] = %f\n", kIndx+1, kIndx, kArr[kIndx])
    kIndx   +=      1 ;increase index
      od

            turnoff
      endin
    </CsInstruments>
    <CsScore>
    i 1 0 .1
    i 2 0 .1
    i 2 0 .1
    i 3 0 .1
    </CsScore>
    </CsoundSynthesizer>

## Voir aussi

Opcodes vectoriels

## Crédits

Auteur : John ffitch
Codemist Ltd
2013

Nouveau dans la version 6.00

Extension multi-dimensionnelle dans la version 6.04

Précédent | Niveau supérieur | Suivant
ksmps | Sommaire | lfo