reshapearray

reshapearray — Reformate un tableau en gardant sa capacité.

Description

Opcode de greffon dans emugens.

L'opcode reshapearray change le format d'un tableau, à condition que cette opération ne modifie pas sa capacité. On peut l'utiliser pour convertir un tableau 1D en tableau 2D ou vice-versa, ou simplement pour modifier la taille de ses dimensions, tant que leur produit reste constant.

Syntaxe

reshapearray array[], isize0 [, isize1 ]

Initialisation

array[] -- Le tableau à reformater (l'opération se fait sans réaffectation).

isize0 -- La taille de la première dimension.

isize1 -- La taille de la seconde dimension (0 pour les tableaux 1D). Vaut 0 par défaut.

Exmples

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

Exemple 838. Exemple de l'opcode reshapearray.

<CsoundSynthesizer>
<CsOptions>
;-odac     ;;;realtime audio out

</CsOptions>
<CsInstruments>

sr = 44100
ksmps = 64
nchnls = 2
0dbfs  = 1

; This is the example file for reshapearray

/*

reshapearray 

  Reshape an array, maintaining the capacity of the array
  (it does NOT resize the array).

  You can reshape a 2D array to another array of equal capacity
  of reshape a 1D array to a 2D array, or a 2D array to a 1D
  array

  reshapearray array[], inumrows, inumcols=0

  works with i and k arrays, at i-time and k-time

*/


instr 1
  ivalues[] fillarray 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
  printarray ivalues
  reshapearray ivalues, 3, 4
  printarray ivalues
endin

instr 2
  kxs[][] init 3, 4
  kxs fillarray   0,  1,  2,  3, \
                 10, 11, 12, 13, \
                 20, 21, 22, 23
  reshapearray kxs, 4, 3
  printarray kxs, 1, "", "kxs after"
  turnoff
endin

</CsInstruments>

<CsScore>
i 1 0 0.01
i 2 1 0.05
</CsScore>

</CsoundSynthesizer>


Voir aussi

printarray, getrow, slicearray,

Crédits

Auteur : Eduardo Moguillansky 2018

Nouveau greffon dans la version 6.12