Arreglos y Clusters - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/iv1/555012271.Apuntes 7 -...

15
Arreglos y Clusters Vamos a examinar la variedad y tipos de arreglos de datos y le da una introducción a la creación y manipulación de matrices y clusters. MATRICES: Una matriz, que se compone de elementos y dimensiones, o es un control o un indicador, no puede contener una mezcla de controles e indicadores. Los elementos son los datos o valores contenidos en la matriz. Una dimensión (D) es la longitud, la altura o la profundidad de una matriz. Las matrices son muy útiles cuando se trabaja con una colección de datos similares y cuando se desea almacenar el historial de cálculos repetidos. Los elementos de la matriz se ordenan de acuerdo a un índice. Para cada valor del índice hay un elemento correspondiente en la matriz, y se puede utilizar el índice para acceder a un elemento específico de la matriz. En el software NI LabVIEW, el índice de la matriz se inicia en cero. Esto significa que si una de una matriz unidimensional (1D) contiene n elementos, el rango de índice es de 0 a n - 1, donde el índice 0 apunta al primer elemento de la matriz y el índice n - 1 apunta al último elemento de la matriz. CLUSTERS: Son grupos de elementos que pueden contener datos de distinto tipo. Un ejemplo de un grupo es el cluster de error LabVIEW, el cual combina un valor booleano, un valor numérico, y una cadena de caracteres (string). Un clúster es similar a un registro o una estructura en lenguajes de programación basados en texto. Al igual que las matrices, un cluster puede ser un control o un indicador y no puede contener una mezcla de controles e indicadores. La diferencia entre los clusters y matrices es que un cluster puede contener tipos de datos mixtos, pero una matriz puede contener un solo tipo de datos. Otra diferencia entre los clusters y las matrices es que un cluster en particular tiene un tamaño fijo, mientras una matriz en particular puede variar de tamaño. Creación de matrices y clusters con controles e indicadores. Para crear una matriz en LabVIEW, se debe crear la estructura del arreglo en el panel frontal y luego colocar un elemento dentro de la estructura del arreglo, como un control numérico, booleano, o de forma de onda o un indicador. Para ello: 1. Crear un nuevo VI. 2. Hacer clic derecho en el panel frontal para mostrar la paleta de controles.

Transcript of Arreglos y Clusters - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/iv1/555012271.Apuntes 7 -...

Page 1: Arreglos y Clusters - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/iv1/555012271.Apuntes 7 - Arreglos y... · creación y manipulación de matrices y clusters. MATRICES: ... 3.

Arreglos y Clusters

Vamos a examinar la variedad y tipos de arreglos de datos y le da una introducción a la

creación y manipulación de matrices y clusters.

MATRICES: Una matriz, que se compone de elementos y dimensiones, o es un control o

un indicador, no puede contener una mezcla de controles e indicadores. Los elementos

son los datos o valores contenidos en la matriz. Una dimensión (D) es la longitud, la altura

o la profundidad de una matriz. Las matrices son muy útiles cuando se trabaja con una

colección de datos similares y cuando se desea almacenar el historial de cálculos

repetidos.

Los elementos de la matriz se ordenan de acuerdo a un índice. Para cada valor del índice

hay un elemento correspondiente en la matriz, y se puede utilizar el índice para acceder a

un elemento específico de la matriz.

En el software NI LabVIEW, el índice de la matriz se inicia en cero. Esto significa que si

una de una matriz unidimensional (1D) contiene n elementos, el rango de índice es de 0 a

n - 1, donde el índice 0 apunta al primer elemento de la matriz y el índice n - 1 apunta al

último elemento de la matriz.

CLUSTERS: Son grupos de elementos que pueden contener datos de distinto tipo. Un

ejemplo de un grupo es el cluster de error LabVIEW, el cual combina un valor booleano,

un valor numérico, y una cadena de caracteres (string). Un clúster es similar a un registro

o una estructura en lenguajes de programación basados en texto.

Al igual que las matrices, un cluster puede ser un control o un indicador y no puede

contener una mezcla de controles e indicadores. La diferencia entre los clusters y

matrices es que un cluster puede contener tipos de datos mixtos, pero una matriz puede

contener un solo tipo de datos. Otra diferencia entre los clusters y las matrices es que un

cluster en particular tiene un tamaño fijo, mientras una matriz en particular puede variar de

tamaño.

Creación de matrices y clusters con controles e indicadores.

Para crear una matriz en LabVIEW, se debe crear la estructura del arreglo en el panel

frontal y luego colocar un elemento dentro de la estructura del arreglo, como un control

numérico, booleano, o de forma de onda o un indicador.

Para ello:

1. Crear un nuevo VI.

2. Hacer clic derecho en el panel frontal para mostrar la paleta de controles.

Page 2: Arreglos y Clusters - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/iv1/555012271.Apuntes 7 - Arreglos y... · creación y manipulación de matrices y clusters. MATRICES: ... 3.

3. En la paleta de controles, vaya a Modern »Array, Matrix, y Cluster y arrastre la

estructura del arreglo en el panel frontal.

4. En la paleta de controles, vaya al Modern »Numeric y arrastre un indicador

numérico y suéltelo dentro de la celda del arreglo.

5. Colocar el ratón sobre la matriz y arrastrar el lado derecho de la matriz para

expandirlo y mostrar tantos elementos como la cantidad de columnas que se quiera

dar al arreglo.

Los pasos anteriores corresponden a la creación de un arreglo 1D (una dimensión).

Veamos cómo crear matrices de más dimensiones:

Page 3: Arreglos y Clusters - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/iv1/555012271.Apuntes 7 - Arreglos y... · creación y manipulación de matrices y clusters. MATRICES: ... 3.

En una matriz de elementos 2D. Cada elemento tiene dos valores del índice

correspondiente, un índice de fila y un índice de columna. Como con una matriz 1D, los

índices de una matriz 2D comienzan desde cero.

Para crear una matriz 2D, primero debe crear una matriz de 1D y luego agregar una

dimensión a la misma. Volvamos a la matriz 1D que se creó anteriormente.

1. En el panel frontal, haga clic en la visualización de índice y seleccione Agregar

dimensión (Add dimensión) en el menú contextual.

2. Coloca el ratón sobre la matriz y arrastre la esquina de la matriz para expandirlo

hasta mostrar las filas y columnas que necesite.

Page 4: Arreglos y Clusters - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/iv1/555012271.Apuntes 7 - Arreglos y... · creación y manipulación de matrices y clusters. MATRICES: ... 3.

Hasta este punto, los elementos numéricos de las matrices que se han creado aparecen

atenuados y con valor cero. Un elemento de la matriz atenuada indica que el elemento no

está inicializado. Para inicializar un elemento, haga clic en dentro del elemento y sustituir

el 0 atenuado con un número de su elección.

Se puede inicializar los elementos con cualquier valor que se elija, donde, obviamente, no

necesariamente tienen que ser los mismos valores que se muestra arriba.

Creación de matrices constantes:

Se puede utilizar las matrices constantes para almacenar los datos constantes o como

una base de comparación con otra matriz.

1. En el diagrama de bloques, haga clic para mostrar la paleta de funciones.

2. En la paleta de funciones, vaya a Programing » Array y arrastre Array Constant

(matriz constante) al diagrama de bloques.

3. En la paleta Function » Programing » Numeric y arrastrar y soltar la constante

numérica dentro de la estructura del arreglo constante.

Page 5: Arreglos y Clusters - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/iv1/555012271.Apuntes 7 - Arreglos y... · creación y manipulación de matrices y clusters. MATRICES: ... 3.

4. Cambiar el tamaño de la matriz constante e inicializar algunos de los elementos

Arreglos de Entrada y Salida

Si se conecta una matriz como entrada de una estructura for, LabVIEW ofrece la opción

de establecer automáticamente los valores de cuenta del lazo para el tamaño de la matriz

mediante la función de Auto-Index. Puede activar o desactivar la opción de auto-indexing

al hacer clic derecho en el túnel de la estructura por donde se conecta a la matriz y

seleccionando Enable Indexing (Disable Indexing).

Si se activa el auto-index, en cada iteración del lazo se pasa el elemento correspondiente

de la matriz.

Page 6: Arreglos y Clusters - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/iv1/555012271.Apuntes 7 - Arreglos y... · creación y manipulación de matrices y clusters. MATRICES: ... 3.

Cuando conecta la salida de un lazo for, y habilita Auto-Indexing se genera una matriz de

salida igual en tamaño a la cantidad de iteraciones ejecutadas por el lazo, y contiene la

salida los valores generados en el bucle.

1. Crear un nuevo VI.

2. Crear e inicializar dos matrices constantes 1D, que contenga seis elementos

numéricos, en el diagrama de bloques aparece algo similar a lo que se muestra a

continuación.

3. Crear una matriz de indicadores numéricos 1D en el panel frontal. Cambiar el tipo

numérico a un entero de 32 bits. Haga clic derecho en la matriz y seleccionar

Representation » I32.

4. Crear un lazo en el diagrama de bloques y colocar una función ADD dentro del lazo

for.

5. Conectar una de las matrices constantes a la terminal de la función ADD.

Page 7: Arreglos y Clusters - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/iv1/555012271.Apuntes 7 - Arreglos y... · creación y manipulación de matrices y clusters. MATRICES: ... 3.

6. Conectar el otro arreglo al otro terminal de la función ADD.

7. Conectar la salida del bloque de suma al arreglo de indicadores

8. El aspecto de su diagrama final debería ser algo así:

Page 8: Arreglos y Clusters - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/iv1/555012271.Apuntes 7 - Arreglos y... · creación y manipulación de matrices y clusters. MATRICES: ... 3.

Diagrama de bloques

Panel Frontal

9. Si ahora corremos el programa vemos que en los indicadores del panel frontal nos

aparece la suma de los elementos correspondientes de las matrices constantes.

Tenga en cuenta que si se habilita el auto-index en el túnel, y operamos con más de una matriz, el

número de iteraciones será igual a la menor de las dimensiones. Por ejemplo, en el

siguiente figura, el lazo está configurado para ejecutarse de 15 iteraciones, Array 1 contiene 10

elementos, y la matriz 2 contiene 20 elementos. Si se ejecuta el VI en la figura siguiente, el lazo se

ejecuta 10 veces y el resultado Array contiene 10 elementos. Que es la dimensión de la menor.

Page 9: Arreglos y Clusters - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/iv1/555012271.Apuntes 7 - Arreglos y... · creación y manipulación de matrices y clusters. MATRICES: ... 3.

Se pueden crear matrices de orden superior utilizando lazos for anidados y el Auto-Index,

como se muestra a continuación. El ciclo for exterior crea los elementos de la fila, y el

ciclo for interior crea los elementos de la columna.

Creando Clusters

1. Crear un nuevo VI.

2. Haga clic derecho en el panel frontal para mostrar la paleta de controles.

3. En la paleta Controls, vaya a Modern »Array, Matrix, y Cluster y arrastre el ícono

de clúster al panel frontal.

Page 10: Arreglos y Clusters - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/iv1/555012271.Apuntes 7 - Arreglos y... · creación y manipulación de matrices y clusters. MATRICES: ... 3.

4. Redimensione la celda del Cluster tal que pueda incluir en ella varios elementos.

5. En la paleta Controls, en Modern»Numeric seleccione y arrastre al interior de la

celda un control numérico.

6. En la paleta Controls, en Modern»String & Path seleccione un String Control y

arrástrelo al interior de la celda.

7. En la paleta Controls, en Modern» Boolean seleccione un Vertical Toggle

Switch y arrástrelo al interior de la celda.

Page 11: Arreglos y Clusters - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/iv1/555012271.Apuntes 7 - Arreglos y... · creación y manipulación de matrices y clusters. MATRICES: ... 3.

8. El cluster debería tener una apariencia similar a esta:

Ahora puede conectar controles numéricos, strings y booleanos con un solo cable, y luego

separarlos cuando convenga.

Creación de Constantes Clusters

Al igual que en las matrices constantes, se puede utilizar las constantes de clusters para

almacenar datos constantes o como una base de comparación con otro grupo. Crear

grupos de constantes de la misma manera que ha creado una amplia variedad de

constantes en los pasos descritos anteriormente.

Page 12: Arreglos y Clusters - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/iv1/555012271.Apuntes 7 - Arreglos y... · creación y manipulación de matrices y clusters. MATRICES: ... 3.

Si usted ya tiene un cluster con un grupo de controles o indicadores y quiere hacer una

clúster constante que contiene el mismo tipo de datos, haga una copia del cluster en el

diagrama de bloques ya continuación, haga clic en la copia y seleccione Change to

Constant en el menú contextual.

Funciones Clusters

Page 13: Arreglos y Clusters - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/iv1/555012271.Apuntes 7 - Arreglos y... · creación y manipulación de matrices y clusters. MATRICES: ... 3.

Vamos a examinar las principales funciones asociadas a los clusters, que nos permiten su

manipulación, que son las funciones Bundle, Unbundle, Bundle By Name, y Unbundle

By Name.

Usamos la función Bundle para armar un cluster a partir de elementos individuales.

Para colocar elementos en la función Bundle, use su ratón para redimensionar la función

o click derecho en la función seleccionando Add Input.

Use las funciones Bundle By Name o Bundle para modificar un cluster existente. Puede

redimensionar con la función Bundle By Name de la misma manera que con la función

Bundle.

Page 14: Arreglos y Clusters - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/iv1/555012271.Apuntes 7 - Arreglos y... · creación y manipulación de matrices y clusters. MATRICES: ... 3.

La función Bundle By Name es muy utilizada para modificar clusters existentes porque se

puede saber exactamente que element del cluster se está modificando. Por ejemplo,

consideremos un cluster que contenga dos elementos strings llamados String 1 y String

2. Si usa la función Bundle para modificar el cluster, los terminales de la función en la

forma de abc’s color rosa. No se puede saber que terminales de String 1 y que

terminales de String 2 modifica.

Sin embargo, si usa la función Bundle By Name para modificar el cluster, podrá ver que

terminales del element String 1 modifica y que terminales de String 2.

Use la función Unbundle para desarmar un cluster en sus elementos individuales. Use la

función Unbundle by Name para reponer su nombre a un elemento específico. También

puede redimensionar múltiples elementos con las funciones Bundle y Bundle By Name.

Page 15: Arreglos y Clusters - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/iv1/555012271.Apuntes 7 - Arreglos y... · creación y manipulación de matrices y clusters. MATRICES: ... 3.

Orden de los Clusters

Los elementos del cluster tienen un orden lógico no relacionados con su posición en el

arreglo. El primer objeto que se coloca en el grupo es el elemento 0, el segundo es el

elemento 1, y así sucesivamente. Si se elimina un elemento, el orden se ajusta

automáticamente. El orden de cluster se determina por el orden en que los elementos

aparecen como terminales en la función Bundle y Unbundle en el diagrama de bloques.

Se puede ver y modificar el orden en el cluster haciendo click en el borde de cluster y

seleccionando Reorder Controls In Cluster en el menú contextual.

El cuadro blanco en cada elemento muestra su posición actual en el orden del cluster. El

recuadro negro muestra nuevo lugar del elemento en el orden. Para establecer el orden

de un elemento de cluster, introduzca el nuevo número de orden en el cuadro de texto

Click to set to y haga clic en el elemento. Al cambiar el orden de un conjunto de

elementos, el orden de los otros conjuntos de elementos se ajusta automáticamente.

Guarde los cambios haciendo clic en el botón Confirm en la barra de herramientas. Para

volver al orden original, haga clic en el botón Cancel.