J'essaie de me salir les mains avec l'interopérabilité entre le serveur .net-Application de Matlab et l'écriture F #. Actuellement, je suis coincé avec un problème de transfert de données. Si j'ouvre un nouveau Matlab instance en F # -interactive:Transfert de données de Matlab Application Server vers F #
#I @"C:\Program Files\MATLAB\R2010a\bin\win64";;
#r @"MLApp.dll";;
let matlab=new MLApp.MLAppClass();;
Et puis-je créer un Matlab-Array:
matlab.Execute("a=[1 2 3 4 5;6 7 8 9 10]");;
L'étape suivante pour transférer le Matlab-tableau à .net serait être
let b =matlab.GetVariable("a","base");;
Voici quand le problème commence. La variable 'b' sera de type 'object', fournissant uniquement l'interface générique d'un type .net-object. Comment puis-je récupérer un tableau numérique à partir de cette variable? Y a-t-il un moyen d'appliquer un downcast à 'array float'?
Edit:
D'accord, il y a une chose que je ne comprends pas: Après avoir appliqué le tableau baissés a le type array2D, float [,]. Mais est-ce le tableau affiché comme ceci:
arr;;
val it : float [,] = [[1.0; 2.0; 3.0]
[4.0; 5.0; 6.0]]
Pour un tableau rectangulaire, je suis habitué à obtenir quelque chose comme ça
arr;;
= [|[|1.0; 2.0; 3.0|]
[|4.0; 5.0; 6.0|]|]
Où est la différence entre ces types? Et pourquoi ne puis-je pas appliquer un découpage de tableau à arr de type float [,]?
Oui, merci! Avec cast pour taper float [,] ça marche! – user1047427