我编译了matlab文件,它以可执行的形式显示大量数字作为基于控制台的应用程序。我需要在php中对可执行文件的输出进行进一步的计算。基于可执行控制台的应用程序的输出是ASCII还是数字格式?如何将数字格式的ASCII输出转换为在php中对其进行进一步计算?
我使用disp(变量)来显示输出。输出格式为。
(1,1) 0.1424
(2,1)0.0117 (3,1)0.0000 (4,1)0.0000 (5,1)0.0677 (6,1)0.0000 (7,1)0.5308 (8,1)0.0077 (9,1)0.0512 (10,1)0.0118 (11,1)0.0001 (12,1)0.1764
(114,1)0.4564 (203,1)0.2962 (250,1)0.2474
第1至7栏
0.1373 0.0414 0.0541 0.1342 0.5606 0.5293 0.1652
第8至14栏
0.0341 0.0396 0.0633 0.0778 0.0289 0.0654 0.0752
第15至21栏
0.3055 0.4602 0.0631 0.0360 0.0188 0.0497 0.0228
第22至28栏
0.0294 0.0373 0.0734 0.3148 0.1703 0.0294 0.0057
第29至35栏
0.0263 0.0382 0.0977 0.0396 0.1056 0.0781 0.1085
第36至42栏
0.1537 0.0239 0.0154 0.0046 0.0121 0.0700 0.0171
第43至49栏
0.0304 0.0551 0.2174 0.2594 0.1179 0.0355 0.0103
第50至56栏
0.0084 0.0188 0.0025 0.0019 0.0219 0.1391 0.1527
第57至63栏
0.0471 0.0313 0.0170 0.0557 0.0016 0.0044 0.0184
第64至70栏
0.0194 0.2053 0.3206 0.1394 0.0208 0.0332 0.0658
第71至77栏
0.0193 0.0073 0.0026 0.0223 0.1996 0.3017 0.0207
第78至84栏
0.0168 0.0076 0.0038 0.1666 0.0278 0.0167 0.1070
第85至91栏
0.3269 0.2546 0.0270 0.0026 0.0053 0.0079 0.0132
第92至98栏
0.0059 0.0141 0.0205 0.1327 0.2656 0.0300 0.0049
第99至105栏
0.0066 0.0228 0 0.0253 0.0622 0.0107 0.0792
第106至112栏
0.0754 0.0157 0 0.0097 0.0229 0.1128 0.0549
答案 0 :(得分:0)
每当程序产生“text”输出时,它将为ASCII。您通常可以将此文本传输到文件或其他进程。根据平台,命令末尾的> myfile.txt
之类的内容将生成一个文件myfile.txt
,其中包含进程的所有输出(例如,可能为matlab -nosplash myScript.m > myfile.txt
)。
现在问题变成了用Python读取文本文件。您可以参考this earlier question了解如何执行此操作。
EDIT 请注意,使程序直接将数字写入文件(而不是通过控制台)非常容易。这是一个简单的例子:
A = 1:5;
fid = fopen('C:\mydir\mydata.dat', 'w');
fprintf(fid, '%d ', A);
fclose(fid);
这会创建一个数组,打开一个文件进行写入,将值写入文件,然后关闭文件。对于测试,您可以使用
fid = 1;
而不是 - 这将产生输出到控制台。我不确定如果你这样做fclose(fid)
语句不会引起问题......