gen*_*gan 5 string matlab printf system
我正在尝试将结果字符串从系统命令解析为外部程序.
[status,result] = system(cmd);
Run Code Online (Sandbox Code Playgroud)
结果打印出我的控制台,其线条正确分解,即
一号线
2号线
...
但它实际上只是一个长字符数组,并且在任何地方都没有换行符.matlab如何知道何时打印新行?我怎样才能将char数组分成单独的行以进行进一步的解析.谢谢!
根据操作系统的不同,不同的字符代表行尾。可以是\n、\r、\f或它们的组合。这些字符的 ASCII 代码少于 30。因此您可以通过以下方式查找它们,例如find(results < 30)显示它们在字符串中的位置,并int32(results(results < 30))查看它们的代码。
int32(sprintf('\n\r\f'))
ans =
10 13 12
Run Code Online (Sandbox Code Playgroud)
然后你可以使用你得到的代码来分割字符串:
regexp(results, char(13), 'split')
Run Code Online (Sandbox Code Playgroud)
如果您对哪些字符用作行尾不感兴趣,您可以尝试:
regexp(results, '[\f\n\r]', 'split')
Run Code Online (Sandbox Code Playgroud)