2017-03-24 1 views
3

Je jouais avec les fonctions les plus basiques de LabVIEW, comme la conversion d'éléments simples en tableaux et en grappes, d'avant en arrière. (Ne remettez pas en question l'utilisation de l'algorithme montré, il n'y en a aucun.)Array to Cluster - Nombre d'éléments pas comme prévu

Lors de la conversion d'un cluster (de types de cours similaires) en un tableau, en utilisant cela pour une opération mathématique simple, et en le convertissant en un regrouper le dégroupage suivant pour diviser le cluster en ses éléments individuels se comporte étrangement. En connectant le dégroupage à ce cluster existant, il augmente automatiquement sa taille à 9 au lieu du 3 attendu. Les sondes et les indicateurs numériques montrent que les éléments au-dessus des trois premiers éléments sont nuls.

Pourquoi est-ce? Je m'attendrais à ce que le tableau au cluster connaisse la taille du tableau converti et corresponde au cluster en conséquence.

enter image description here

enter image description here

Répondre

3

Alors que l'on pourrait attendre à ce que matrice Pour cluster applys la taille du tableau au cluster automatiquement, il utilise plutôt une valeur par défaut fixe quelle que soit la taille du tableau sous-jacent:

La valeur par défaut est neuf. La taille de cluster maximale pour cette fonction est 256.

Source: http://zone.ni.com/reference/en-XX/help/371361J-01/glang/array_to_cluster/

Cette valeur peut être modifiée par un clic droit sur la fonction et la sélection cluster Taille dans le menu contextuel. Malheureusement, cela signifie également de corriger manuellement chaque fois que le tableau est modifié.

Explication: La raison de ce comportement est que si la taille d'un tableau peut varier dynamiquement lors de l'exécution, la structure de données d'un cluster est fixé au moment de la compilation (LabVIEW est un langage fortement typé). Le compilateur doit être informé de la taille du cluster. Si vous avez vraiment besoin de créer des clusters arbitraires à l'exécution, vous pouvez probablement faire quelque chose avec des variantes, mais je regarderais de nouveau ce que vous essayez de réaliser pour vérifier si c'est vraiment nécessaire.

+2

La raison de ce comportement est que, bien que la taille d'un tableau puisse varier dynamiquement au moment de l'exécution, la structure d'un cluster est fixée au moment de la compilation - c'est ainsi que LabVIEW a été conçu. Si vous avez vraiment besoin de créer des clusters arbitraires à l'exécution, vous pouvez probablement faire quelque chose avec des variantes, mais je regarderais de nouveau ce que vous essayez de réaliser pour vérifier si c'est vraiment nécessaire. – nekomatic

+2

@nekomatic J'ai fusionné votre commentaire dans la réponse. Les commentaires sur le SO peuvent être supprimés, ainsi les informations qui améliorent directement la réponse sont encouragées à fusionner dans la réponse. Il est également plus cohérent pour les personnes lisant la réponse de ne pas avoir à trier les commentaires pour obtenir toute la réponse. :-) – srm

+0

@nekomatic merci pour l'explication. Pour clarifier, il n'y a pas de véritable cas d'utilisation en ce moment. Je suis juste en suivant un guide d'instructions de base et joue avec les caractéristiques comme elles sont discutées. – Ghanima