Cómo hacer que el bucle interno de labview genere una matriz unidimensional y el bucle externo no se detendrá
En el lenguaje G de LabVIEW, un bucle se representa como una caja. Existe un llamado "túnel" cuando los datos ingresan al bucle, y los datos también pasan a través del "túnel" cuando salen del bucle. El túnel está representado por un pequeño cuadrado en el cuadro del bucle. El túnel también se puede configurar en diferentes modos, como se muestra en la siguiente figura:
Aprenda LabVIEW (8): use bucles para procesar matrices
Como se puede ver en la figura anterior , el túnel tiene tres modos: valor final, índice, unión. La configuración de diferentes modos de túnel permite que el bucle tenga diferentes funciones. El túnel en modo índice aparece como un cuadro pequeño con un par de corchetes [] dentro del cuadro de bucle, y el túnel en modo de valor final aparece como un pequeño cuadro sólido.
¿Para qué sirve el modo índice?
Si la entrada de datos al bucle es una matriz 1D, el flujo de datos después del túnel en modo índice se convierte en un escalar. En este momento, la función del bucle es: utilizar el diagrama de bloques en el cuadro del bucle. para procesar cada elemento en la matriz. Un elemento, esta sensación es algo similar a arrayfun de MATLAB y mapa de Python. La diferencia es que podemos usar un registro de desplazamiento en un bucle para implementar una operación iterativa. El extremo de salida tiene el efecto opuesto;
Si los datos del bucle de entrada son una matriz 2D, el flujo de datos después del túnel en modo índice se convierte en una matriz 1D y el bucle procesa una fila de la matriz 2D a la vez. time (O una columna, no he descubierto si LabVIEW es columna principal o fila principal). El resultado es el efecto inverso.
En esta ocasión utilizamos un bucle para implementar el cálculo de un gráfico de Mandelbrot. En "xialulee versus pythonchallenge - nivel 31", utilizamos Matlab para implementar el proceso de cálculo. Aquí usamos el lenguaje G de LabVIEW para implementar su algoritmo iterativo central. En cuanto a la construcción de los datos iniciales, todavía usamos nodos MATLAB con pereza. El programa completo es el siguiente:
Aprenda LabVIEW (8): use bucles para procesar matrices
En el programa anterior, la parte del algoritmo tiene tres capas de bucles anidados en su interior. El bucle más externo se usa para dividir la matriz inicial de entrada en matrices 1D una por una. El bucle intermedio se usa para dividir la matriz 1D en escalares uno por uno. La capa más interna es un algoritmo iterativo. /p>
z = 0
para k en el rango(128):
z = z * z + entrada
si abs( z) > 2:
descanso
Luego genera k.
La expresión iterativa (z = z * z + entrada) en el algoritmo se implementa utilizando un registro de desplazamiento, que son dos cuadros cuadrados separados con pequeños triángulos a la izquierda y a la derecha encima del cuadro de bucle.