stdin
可以使用input
函数在Matlab中读取,如this post中所示。例如:
printf "1\t2\n" | matlab -nojvm -nodesktop -nosplash -r "str=input('','s')"
尝试读取包含多个换行符的数据失败,因为第一个信号指示input
命令的结束:
printf "1\t2\n3\t4\n" | matlab -nojvm -nodesktop -nosplash -r "str=input('','s')"
str = 1 2
>> 3 4
|
Error: Unexpected MATLAB expression.
我尝试了其他可能性,包括fscanf(0,...)
,fscanf('',...)
,fopen(0,'r')
和fopen('','r')
,但无济于事。我想读取从另一个进程传输的制表符分隔数据的行,理想情况是直接进入单元格数组,或者读成一个我可以解析自己的字符串。我当然可以循环input
直到流的结尾,但我想知道是否有一些方法可以立即收集所有输入。