如何在MATLAB命令历史记录中进行搜索?

22
我想搜索我之前使用过的特定命令。在MATLAB命令历史记录中进行自由文本搜索是否可行?

2个回答

25

是的。Matlab会将你的命令历史记录保存在一个名为history.m的文件中,该文件位于"preferences folder"目录下,包含了偏好设置、历史记录和布局文件。你可以使用prefdir命令找到"preferences folder"目录:

>> prefdir

ans =

/home/tobin/.matlab/R2010a

然后使用你选择的机制在该目录中搜索history.m文件。例如,在Unix上使用grep:

>> chdir(prefdir)
>> !grep plot history.m
plot(f, abs(tf))
doc biplot
!grep plot history.m

如果只想使用GUI,您也可以直接在命令历史窗口中使用搜索功能


+1。你的答案是正确的。我接受了gnovice的答案,因为他的解决方案还提供了一个正则表达式选项。无论如何,谢谢。 - snakile
1
grep -E。 (-:Gnovice 的回答也很有趣;我不知道 com.mathworks java 接口。 - nibot
2
如果您单击命令历史记录窗口,您可以使用 * 进行简单的正则表达式匹配,例如 *plot 可以匹配 h=plot(x,y) - k107
最后你链接的页面似乎已经不存在了,请考虑更新一下。也许是这个页面:http://in.mathworks.com/help/matlab/ref/commandhistory.html? - Slothworks

7
如果您想以编程和独立于平台的方式完成此操作,您可以首先使用MATLAB的Java内部来获取命令历史记录作为字符数组: (参考链接)
history = com.mathworks.mlservices.MLCommandHistoryServices.getSessionHistory;
historyText = char(history);

接下来,您可以使用像STRFINDREGEXP这样的函数随意搜索字符数组。您也可以使用CELLSTR函数将字符数组转换为字符串的单元格数组(每个单元格一行),因为它们有时更易于使用。


@Jason S:不是这样的。请看这个问题:获取关于MATLAB的com.mathworks内部的帮助 - gnovice

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接