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 498. 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