input
命令。将下面的代码写入到myscript.m文件中即可:str = input('', 's');
fprintf(str);
exit;
然后,在shell中运行以下命令:
echo Hello world | matlab -nosplash -nodisplay -nodesktop -r "myscript"
确实,我们看到“Hello world”被打印到控制台上,还有Matlab的启动文本。
因此,总结一下,input
从stdin读取,fprintf
写入stdout。
input
命令停止读取。我正在尝试将制表数据管道传输到Matlab脚本,而不必写入临时文件或FIFO。谢谢。 - user001input
5次。 - Jamiemkfifo MY_PIPE
以创建一个命名管道。这将创建一个名为MY_PIPE的类似文件的对象,您可以读取和写入它。然后,将发送数据的程序的输出重定向到MY_PIPE,例如./program.sh > MY_PIPE
。最后,要从Matlab中读取管道,您可以使用fopen('MY_PIPE', 'r')
。它仅在Linux环境中运行,并且具有访问shell的权限。
它不使用Matlab内置函数,有些hackish。
input
内置函数不起作用,因为我认为它直接从键盘读取,而不是从stdin读取。) - Jamie