无法重定向 Matlab 编译器生成的可执行文件的输出

问题描述 投票:0回答:1

我用 Matlab Coder 制作了这个简单代码的可执行文件:

function hello (s_a,d_b,d_c)
    fprintf('%s\n',s_a);
    fprintf('%d\n',d_b/d_c);
    fprintf('%d\n',d_b*d_c);
end

当我在窗口命令提示符下运行此可执行文件时,我可以看到结果。

当我使用 StandardOuptut 的重定向和 StandardError 的重定向时,我的文件已创建,但它是空的。

我尝试了一个简单命令的重定向,它对我有用。

所以,我认为问题出在我的可执行文件上。 您知道如何重定向 Matlab 生成的可执行文件的输出吗?

matlab http-redirect command-prompt
1个回答
0
投票

我知道这是一个老问题,但会为遇到这个问题的人发布一个可能的解决方案。 您可以在 Matlab 中将 frpintf 转换为文本文件:

fileID = fopen('output.txt','at+');
fprintf(fileID,'%s\n',s_a);
fprintf(fileID,'%d\n',d_b/d_c);
fprintf(fileID,'%d\n',d_b*d_c);  

此外,您可以使用 FileStream 从另一个应用程序读取文本文件,例如,假设 FileShare 设置为 FileShare.ReadWrite,

FileStream logFS = new FileStream("output.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
StreamReader Sr = new StreamReader(logFileStream);

while (!Sr.EndOfStream)
{
    string line = Sr.ReadLine();
   //do something    
}

Sr.Close();
logFS.Close();
© www.soinside.com 2019 - 2024. All rights reserved.