0

我会在 Bash 中使用这样的编程引用

$ export b=`ls /`
$ echo $b
Applications Library Network System Users Volumes tmp usr var

现在我想在 Matlab 中找到类似的功能。另外,我想找到一个输出相对路径的命令,而不是像 Matlab 那样的绝对路径ls——如果我用正则表达式解析它,我感觉就像是在重新发明轮子。我需要找到这个命令来调试这里的命名空间有什么问题。熟悉的 Bash 风格的功能会很酷。

4

2 回答 2

2

对于您的第一个问题,我认为您可以使用匿名函数获得这种行为:

b = @() ls('C:\');  %I'm on windows
b()

该表达式b()现在返回我的 C 驱动器的内容。

于 2013-04-11T19:18:57.570 回答
2

bash 反引号的 Matlab 等效项是调用该system()函数并使用第二个输出参数。它将运行外部命令并捕获输出。

[status,b] = system('ls /');

如果它是您想要运行并捕获控制台输出的 Matlab 代码字符串,请使用evalc.

但是要获取文件列表,您需要 Matlabdir函数。比解析该输出字符串容易得多,并且您可以获得更多信息。请参阅Matlab 目录文档doc dir了解更多详细信息。

children = dir('/');
childNames = { children.name };
childIsDir = [ children.isdir ];
于 2013-04-11T20:02:00.523 回答