Construire des structures de données

23.08.2021

FPScript fournit des opérateurs et des fonctions pour vous aider à construire vos propres structures de données.

Série de données linéaires

Par exemple, cet opérateur Data Series crée une série de données avec des valeurs ascendantes :

(100, 0., 1.)

100 est le nombre de valeurs, 0. est la valeur de départ, et 1. est l'incrément. Si vous préférez spécifier la valeur de départ, la valeur finale et l'intervalle d'échantillonnage, utilisez la fonction Série:

Série(0, 100, 1)

génère une série de données de 101 valeurs avec une valeur de départ de 0, une valeur finale de 100 et un intervalle d'échantillonnage de 1. Ici, le type de données est toujours une valeur à virgule flottante de 64 bits.

Si vous utilisez des quantités, vous pouvez spécifier différentes unités, mais elles doivent être compatibles :

(2000, 0 s, 1 ms) or Series(0 s, 2 s, 1 ms)

Le résultat contient l'unité la plus à gauche et est donc égal à :

(2000, 0 s, 0.001 s)

Séries de données et matrices à contenu constant

L'opérateur Multiply est utilisé pour créer des séries de données ou des matrices de données à contenu constant :

1.5 # 100n

L'exemple ci-dessus montre une série de données avec 100 fois la valeur de 1,5. La valeur scalaire 1.5 a été multipliée 100 fois.

1.5 # 100n # 20n génère une matrice de données bidimensionnelle avec 20 séries de données de 100 valeurs chacune.

TRUE # Forme(Matrice)        génère une matrice de valeurs booléennes dont le nombre de colonnes et de lignes correspond à une matrice existante.

Même ici, vous pouvez multiplier les quantités :

1.5 N m # 100n

Séries de données et matrices à contenu variable

Vous pouvez également regrouper différentes valeurs scalaires en séries de données et des séries de données en matrices de données :

{ 1.5, 2.6, 7.8 }

L'opérateur Bundle regroupe les valeurs scalaires en une série de données à trois valeurs. La longueur de la liste n'est pas limitée. Bien sûr, en plus des valeurs scalaires constantes, vous pouvez écrire des expressions arithmétiques qui renvoient des valeurs scalaires.

{ DataSeries1, DataSeries2, DataSeries3 } regroupe trois séries de données unidimensionnelles en une matrice de données bidimensionnelle. Les séries de données doivent avoir la même longueur.

Tous les éléments d'une série de données ou d'une matrice de données sont du même type de données. Ceci ne s'applique pas aux composants des structures de données agrégées ; par exemple, le composant X d'un signal peut avoir un type de données différent de celui du composant Y.

Au lieu de valeurs numériques, vous pouvez également regrouper des quantités. Il suffit de spécifier une unité pour la première valeur ; celle-ci s'appliquera ensuite aux autres valeurs.

{ 1.5 kg, 2.6, 7.8 }

Si vous spécifiez des unités différentes, elles doivent être compatibles. Le résultat contient l'unité de la première quantité :

{ 50 mV, 0,5 V, -0,7 V } correspond à l'entrée de { 50 mV, 500 mV, -700 mV }.

Listes avec plusieurs éléments indépendants

L'opérateur Liste rassemble plusieurs valeurs ou quantités qui, pour leur part, peuvent avoir n'importe quelles structures et types de données. Chaque élément d'une liste a la possibilité d'avoir un nom. Comme chaque élément de liste peut à son tour être une liste, il est possible de construire n'importe quelle structure profondément imbriquée.

[ <Solution> Data Series, <ChiSquare> Scalar Value ]  compiles the solution vector from a curve fitting and the goodness-of-fit measure into a list. Les noms fournis entre crochets sont facultatifs et décrivent les éléments de la liste.

Pour créer facilement une liste des objets, vous pouvez utiliser les caractères de remplacement '*' et '?' dans le nom du chemin. Par exemple :

'\Measurement*\Signal'        correspond à [\Mesure1\Signal, \Mesure2\Signal, ...].

Utilisez le caractère générique "*" pour une chaîne de caractères de n'importe quelle longueur et le caractère générique " ?" pour un seul caractère.

Remarque :   L'utilisation de noms d'éléments de liste n'est plus recommandée dans FlexPro version 10 et supérieure. Utilisez plutôt la fonction AssignHeader pour attribuer des informations d'en-tête aux éléments de la liste.

Les listes sont utilisées pour les analyses multicanaux ou lorsqu'un seul calcul produit plusieurs résultats indépendants qui ne peuvent être calculés séparément.

Pour accéder à un élément de liste, vous pouvez utiliser son nom, s'il est disponible, ou la position de l'élément dans la liste :

List.ChiSquare accède au deuxième élément de la liste ci-dessus.

List.[1n] vous donne le même résultat sans utiliser le nom de l'élément.

Vous pouvez utiliser la fonction ListToSeries pour convertir une liste contenant des éléments de même structure en une série de données, une matrice de données ou une série de signaux.

Construire des structures de données agrégées

Vous pouvez utiliser la fonction Signal pour créer des structures de données agrégées de signaux, de séries de signaux et de courbes spatiales à partir des structures de données de base de séries de données et de matrices de données :

Signal(Amplitude, Temps) joint deux séries de données avec les valeurs de mesure et les valeurs de temps correspondantes pour former un signal. L'amplitude et le temps sont alors les composantes du signal.

Concaténation de données

L'opérateur de concaténation ajoute des ensembles de données les uns aux autres :

DataSeries1 : Série de données 2

Vous pouvez également ajouter des signaux les uns aux autres. Dans ce cas, la composante X du second signal est automatiquement décalée de façon à ce qu'elle suive sans discontinuité le premier.

Si vous concaténer des quantités, l'unité de l'argument de droite est ajustée à celle de gauche.

Partager l’article ou envoyer par mail :

Vous serez probablement intéressé par les articles suivants :