如何在Matlab中将stdout重定向到stdin?Aka如何管理文件描述符?

如何在Matlab中将stdout重定向到stdin?Aka如何管理文件描述符?,matlab,file-descriptor,Matlab,File Descriptor,我的同龄人创造了一部极难测试的小说,他们使用标准输出输出结果。现在我无法更改它们的代码,我需要使用它们的函数。假设一个函数mlfpprint使用stdout显示结果——现在我需要检查它的结果是否正确,因此我需要将stdout获取到一个变量,以便与正确的结果进行比较。所以 如何在Matlab中管理文件描述符?例如,如何将stdout转换为stdin?一种方法是将函数调用/脚本的输出保存到文件中。然后解析文件。同样按照Oleg的建议,您可以使用likeevalc('functionName')@hh

我的同龄人创造了一部极难测试的小说,他们使用标准输出输出结果。现在我无法更改它们的代码,我需要使用它们的函数。假设一个函数
mlfpprint
使用stdout显示结果——现在我需要检查它的结果是否正确,因此我需要将stdout获取到一个变量,以便与正确的结果进行比较。所以


如何在Matlab中管理文件描述符?例如,如何将stdout转换为stdin?

一种方法是将函数调用/脚本的输出保存到文件中。然后解析文件。同样按照Oleg的建议,您可以使用like
evalc('functionName')

@hhh如果您想使用
evalc
调用您的函数,也许您应该执行
evalc('arbiaryamountofprints(someArgList)
,因为
evalc
要求将需要计算为字符串的表达式。@hhh如果调用
[a,b]=evalc('disp()')
,则会出现该错误。现在,即使我有一个循环
disp()
的函数,我仍然可以使用
a=evalc(myLoopDisp)
捕获所有打印。您需要向
evalc()
传递一个字符串,因此它将是evalc('hello')。很容易忘记封装到
中,事实上,我在之前的评论中忘记了它们….@hh很抱歉坚持;-),但是你应该这样调用你的函数:移动了后续的问题,我已经知道一个黑客可以这样做,但可能有更好的方法…非常感谢你的想法!