Un cliente envió este ejemplo de una matriz en formato binario y de texto
Binario:
b'\x0e\xb1C>J\x04\x06?Cf\x05?\x13\xdb\r?l\xa7->h?\xd2>\x83\x8d\xee>pVF>oC\xde>\x9b\x1b\xcb>\xf7k\xc3>:\x8b:>\xe4N!?Ti\x04?\x84pU>\x1a\x92\xef>!P\x0f?\xba\xf7\xf2>u\xe6!>\x91B\t?*?\x06?\x07\xa1$>a\x1d\xec>7\x15\xe0>?\x9f\xf9>\xf4\xe2[>\x86\xca\xee>\xd38\x00?kWT>\x06C\xf4>S@\x0f?\xc4\t\x05?\xd0P\x1c>\x97\x96\x00?z1\x04?`%>>\xc1\x8d\x16?\x1a\x80\xfa>M\xbc\x1b?\xfaUC>5|\x00?\xb8o\xf6>_.Z>\x0c\xb2\xe0>\x0bf\xe8>\x8f(\x0c?\xdf\x13$>\xd0\xd5\xda>N?\xe9>\xe3:5>\xf0z\x0f?\x90(\xf8>\t\xb8\x12?\x9eZD>\x16t\x11?{l\xf4>\xac\xd8U>\xa40\xdb>\r\xbe\x01?\n\xd5\x07?I\xd3[>\xfc1\x11?EN\n?\x02\x92^>{#\x0c?\xb8\x1d\x00?0\xc4\x14?a\x004>\x84m\x0e?L\x1c\n?9\x1aV>GD\xe7>v\x80\x06?$k\xff>3\xc0,>l\x8f\xd3>f\xab\xe3>\xd9\'k>\xa9H\xe5>\xb2;\xdd>Y9\xfb>\xae\x1c1>\xd8\x05\xf3>\xc07\xfa>\xd0\x19X>R\x10\xff>\x96\xe8\x06?|B\xe8>\xbbJ<>)>\x13?\xf3p\xee>\x7f\x916>f#\x00?5z\xd8>\xed\x0c\x04?\x87$<>\x01n\x1c?\x199\x15?\xe8iL>\xd8I\xf4>"\xb7\xeb>I)\x0b?\xca\xd4)>\x15G\xdf>T\xcb\x1a?`L">\x1d7\x04?^\xa1\xf7>\x9dr\xf8>Cg?>*Z\x11?\xe9q\x0e?\x1e4Q>@H\x03?k\xcf\x00?\x89\x82\x03?\x8e\xa0A>DT\x11?\xcb \xeb>\x8c87>\x1f#\x0b?\xdc\xd2\x12?\xb6u\xee>)\t:>b$\x1f?A\x92\x05?\xb8pw>.\xd0\x1e?\x82\x90\xf7>pM\x13?\xd6\xb9r>H\xe6\xf7>~)\x00?\x9f\x94?>\n>\x11?\x83\x92\xef>\xf0m\x0c?\xc6\xab=>\xd0\xaa\x04?j\x89\x03?'
Texto (descodificado usando pandas):
array('f', [0.19110509753227234, 0.5235029458999634, 0.521091639995575, 0.5541240572929382, 0.1695839762687683, 0.41064000129699707, 0.46592339873313904, 0.19368910789489746, 0.4341082274913788, 0.39669498801231384, 0.3816830813884735, 0.18217173218727112, 0.6301100254058838, 0.5172321796417236, 0.2084370255470276, 0.4679115414619446, 0.5598164200782776, 0.47454625368118286, 0.15810568630695343, 0.5361719727516174, 0.5244013071060181, 0.16077052056789398, 0.46116164326667786, 0.4376618564128876, 0.4875430762767792, 0.21473294496536255, 0.46638888120651245, 0.5008670687675476, 0.20736472308635712, 0.4770738482475281, 0.5595752596855164, 0.5196802616119385, 0.15265202522277832, 0.5022978186607361, 0.5163799524307251, 0.18568944931030273, 0.5881004929542542, 0.4892585873603821, 0.6083419919013977, 0.1907576620578766, 0.5018952488899231, 0.4813210964202881, 0.21306751668453217, 0.43885838985443115, 0.45390352606773376, 0.5474938750267029, 0.1602320522069931, 0.4274125099182129, 0.455561101436615, 0.17698244750499725, 0.5604696273803711, 0.48468446731567383, 0.573120653629303, 0.19175192713737488, 0.5681775808334351, 0.4773901402950287, 0.20883435010910034, 0.4281054735183716, 0.5068061947822571, 0.5305944681167603, 0.21467317640781403, 0.5671689510345459, 0.5402567982673645, 0.21735385060310364, 0.5474163889884949, 0.5004534721374512, 0.5811185836791992, 0.1757826954126358, 0.5563585758209229, 0.5394942760467529, 0.2090844064950943, 0.4516927897930145, 0.5253976583480835, 0.4988642930984497, 0.1687019318342209, 0.4132035970687866, 0.4446670413017273, 0.22964419424533844, 0.4478199779987335, 0.43209606409072876, 0.49067190289497375, 0.17296096682548523, 0.474653959274292, 0.4887065887451172, 0.21103596687316895, 0.4981713891029358, 0.5269864797592163, 0.4536322355270386, 0.1838788241147995, 0.5751672387123108, 0.4657054841518402, 0.17828939855098724, 0.5005401372909546, 0.42280736565589905, 0.5158222317695618, 0.18373309075832367, 0.6110535264015198, 0.5829024910926819, 0.1996227502822876, 0.477125883102417, 0.46038156747817993, 0.5435987114906311, 0.16585078835487366, 0.4360891878604889, 0.6046650409698486, 0.1584944725036621, 0.516465961933136, 0.4836530089378357, 0.48524942994117737, 0.18691734969615936, 0.5677820444107056, 0.5564256310462952, 0.20430037379264832, 0.5128211975097656, 0.5031649470329285, 0.5137105584144592, 0.18908903002738953, 0.5676920413970947, 0.4592345654964447, 0.17892664670944214, 0.5435046553611755, 0.5735299587249756, 0.4657418131828308, 0.18167556822299957, 0.621648907661438, 0.5217629075050354, 0.24164092540740967, 0.6203640699386597, 0.4835243821144104, 0.5754003524780273, 0.2370370328426361, 0.4841787815093994, 0.5006331205368042, 0.18709038197994232, 0.5673528909683228, 0.4679146707057953, 0.5485525131225586, 0.18522557616233826, 0.5182313919067383, 0.5138155221939087])
Los datos se almacenan en una base de datos en forma binaria por razones de tamaño/conveniencia. Se preguntaban si había una manera de convertirlo nuevamente en números utilizables dentro de JMP. Pensé que podríamos tratarlo como un BLOB y hacerlo de esa manera, pero no he tenido suerte.
¿Pensamientos del grupo sobre lo que podríamos hacer?
Mejor,
METRO
El truco consiste en convertir esa cadena en una codificación compatible con Char to Blob(). Afortunadamente, "ascii-hex" está cerca de su codificación. The Blob to Matrix puede hacer su magia.
También necesita saber el formato de los flotadores. Un poco de prueba y error sugiere que son flotantes little-endian de 4 bytes.
in = "\[\x0e\xb1C>J\x04\x06?Cf\x05?\x13\xdb\r?l\xa7->h?\xd2>\x83\x8d\xee>pVF>oC\xde>\x9b\x1b\xcb>\xf7k\xc3>:\x8b:>\xe4N!?Ti\x04?\x84pU>\x1a\x92\xef>!P\x0f?\xba\xf7\xf2>u\xe6!>\x91B\t?*?\x06?\x07\xa1$>a\x1d\xec>7\x15\xe0>?\x9f\xf9>\xf4\xe2[>\x86\xca\xee>\xd38\x00?kWT>\x06C\xf4>S@\x0f?\xc4\t\x05?\xd0P\x1c>\x97\x96\x00?z1\x04?`%>>\xc1\x8d\x16?\x1a\x80\xfa>M\xbc\x1b?\xfaUC>5|\x00?\xb8o\xf6>_.Z>\x0c\xb2\xe0>\x0bf\xe8>\x8f(\x0c?\xdf\x13$>\xd0\xd5\xda>N?\xe9>\xe3:5>\xf0z\x0f?\x90(\xf8>\t\xb8\x12?\x9eZD>\x16t\x11?{l\xf4>\xac\xd8U>\xa40\xdb>\r\xbe\x01?\n\xd5\x07?I\xd3[>\xfc1\x11?EN\n?\x02\x92^>{#\x0c?\xb8\x1d\x00?0\xc4\x14?a\x004>\x84m\x0e?L\x1c\n?9\x1aV>GD\xe7>v\x80\x06?$k\xff>3\xc0,>l\x8f\xd3>f\xab\xe3>\xd9\'k>\xa9H\xe5>\xb2;\xdd>Y9\xfb>\xae\x1c1>\xd8\x05\xf3>\xc07\xfa>\xd0\x19X>R\x10\xff>\x96\xe8\x06?|B\xe8>\xbbJ<>)>\x13?\xf3p\xee>\x7f\x916>f#\x00?5z\xd8>\xed\x0c\x04?\x87$<>\x01n\x1c?\x199\x15?\xe8iL>\xd8I\xf4>"\xb7\xeb>I)\x0b?\xca\xd4)>\x15G\xdf>T\xcb\x1a?`L">\x1d7\x04?^\xa1\xf7>\x9dr\xf8>Cg?>*Z\x11?\xe9q\x0e?\x1e4Q>@H\x03?k\xcf\x00?\x89\x82\x03?\x8e\xa0A>DT\x11?\xcb \xeb>\x8c87>\x1f#\x0b?\xdc\xd2\x12?\xb6u\xee>)\t:>b$\x1f?A\x92\x05?\xb8pw>.\xd0\x1e?\x82\x90\xf7>pM\x13?\xd6\xb9r>H\xe6\xf7>~)\x00?\x9f\x94?>\n>\x11?\x83\x92\xef>\xf0m\x0c?\xc6\xab=>\xd0\xaa\x04?j\x89\x03?]\";
asciihex = substitute(in, "~", "~7E", "\x", "~");
b = char to blob(asciihex, "ascii~hex" );
m = blob to matrix(b, "float", 4, "little");
show(m[1::10]);
// m[Index(1, 10)] = [0.191105097532272, 0.523502945899963, 0.521091639995575, 4.3744989849699e+30, 1.90337728217527e-11, -205521911808, -2.18980242269506e+28, 13724.060546875, -3.52063568238294e+18, -10197822];