Cette question est probablement très différente de ce que vous avez l'habitude de lire ici - j'espère que cela peut constituer un défi amusant. J'ai essentiellement un algorithme qui utilise 5 variables (ou plus) pour calculer une seule valeur, appelée outcome
. Maintenant, je dois implémenter cet algorithme sur un périphérique embarqué qui n'a pas de limitations de mémoire, mais qui a des contraintes de traitement très dures. Pour cette raison, je voudrais exécuter un moteur de calcul qui calcule outcome
pour, disons, 20 valeurs différentes de chaque variable et stocke cette information dans un fichier. Vous pouvez considérer cela comme une matrice 5 (ou plus) -dimensionnelle ou 5 (ou plus) -dimensionnelle, chaque dimension étant longue de 20 entrées.Calcul, stockage et récupération de valeurs vers et à partir d'une matrice N-Dimensionnelle
Dans toute langue moderne, remplir ce tableau est aussi simple que d'avoir 5 (ou plus) for
boucles imbriquées. La partie difficile est que j'ai besoin de vider ces valeurs dans un fichier qui peut ensuite être placé sur le périphérique intégré afin que le périphérique puisse l'utiliser comme une table de recherche.
Les questions maintenant, sont les suivants:
- Quel est le format (s) peut-être acceptable pour stocker les données?
- Quels programmes (MATLAB, C#, etc.) peuvent être les mieux adaptés pour calculer les données ?
- C# doit être utilisé pour importer les données sur l'appareil - est-ce possible étant donné votre réponse à # 1?
Edit: Est-il possible de lire mon fichier de table de recherche sans lire le fichier en mémoire? Pouvez-vous expliquer comment cela pourrait être fait en C#?
Un sous-problème intéressant est de sélectionner les 20 valeurs différentes pour chaque variable. Disons que vous effectuez une interpolation linéaire pour obtenir le résultat. Si votre fonction de résultat est linéaire pour une variable sur une large plage pour cette variable et toutes les autres, vous n'avez pas besoin des 20 valeurs. Mais si votre résultat est hautement non linéaire, vous pourriez avoir besoin de plus de 20 pour représenter toutes les possibilités.Pas une réponse - juste une extension de la question originale. – Grembo