HonradosHP
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

Obtener una columna de un arreglo de dos dimensiones

Ir abajo

Obtener una columna de un arreglo de dos dimensiones Empty Obtener una columna de un arreglo de dos dimensiones

Mensaje  CesarV Sáb Oct 01, 2011 12:43 pm

Para obtener una columna de un arreglo de dos dimensiones, puedes usar alguno de los siguientes 2 NULLNAME

*********************************************

Caso general:
El arreglo tiene objetos de cualquier tipo.

Código:
* Nivel 2: Arreglo de dos dimensiones, con objetos de cualquier tipo.
* Nivel 1: Bint que representa la columna que queremos obtener.
* Salida: La columna deseada como un arreglo de una dimensión.
* Este NULLNAME usa un NULLNAME anterior: ob>ARRY
NULLNAME Get_Col_Arry ( [[]] #col -> [] )
::              ( [[]] #col )
OVER            ( [[]] #col [[]] )
MDIMSDROP        ( [[]] #col #Nfil #Ncol )
2DUP            ( [[]] #col #Nfil #Ncol #Nfil #Ncol )
#*              ( [[]] #col #Nfil #Ncol #Nelem )
#1+              ( [[]] #col #Nfil #Ncol #Nelem+1 )
4ROLL            ( [[]] #Nfil #Ncol #Nelem+1 #col )
DO
                ( ... [[]] #Nfil #Ncol )
  INDEX@        ( ... [[]] #Nfil #Ncol #i )
  4PICK          ( ... [[]] #Nfil #Ncol #i [[]] )
  GETATELN      ( ... [[]] #Nfil #Ncol ob T )
  DROP          ( ... [[]] #Nfil #Ncol ob )
  4UNROLL        ( ... ob [[]] #Nfil #Ncol )
  DUP
+LOOP
                ( ob1...obn [[]] #Nfil #Ncol )
DROPSWAPDROP    ( ob1...obn #Nfil )
ONE{}N          ( ob1...obn {#Nfil} )
ob>ARRY          ( [ob1...obn] )
;
NOTA: El NULLNAME ob>ARRY que permite crear un arreglo a partir de los objetos de la pila puedes encontrarlo en la siguiente página:
Formar un arreglo con los objetos de la pila


**********************************************

Caso arreglo numérico:
Este NULLNAME es mucho más rápido que el anterior, pero sólo funciona para arreglos reales o complejos.

Código:
* Nivel 2: Arreglo de dos dimensiones, debe ser real o complejo.
* Nivel 1: Bint que representa la columna que queremos obtener.
* Salida: La columna deseada como un arreglo de una dimensión.
NULLNAME Get_Col_NumArry ( [[]] #col -> [] )
::              ( [[]] #col )
SWAP            ( #col [[]] )
CKREF            ( #col [[]] )
!MATTRNnc        ( #col [[]] )
SWAPOVER        ( [[]] #fila [[]] )
DIMLIMITS_      ( [[]] #fila {#F #C} )
TWONTHCOMPDROP_  ( [[]] #fila #C )
ONE{}N          ( [[]] #fila {#C} )
3PICK            ( [[]] #fila {#C} [[]] )
laMGET0          ( [[]] #fila {#C} %0/C%0 )
MAKEARRY_        ( [[]] #fila [] )
SWAPFALSE_      ( [[]] [] #fila F )
FLASHPTR laGPROW ( [[]] []' )
SWAPDROP        ( []' )
;
CesarV
CesarV
Admin

Masculino Cantidad de envíos : 133
Localización : Perú
Calculadora : HP 50g
ROM : 2.15

https://sites.google.com/view/cesarv1821

Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.