将octave / matlab输出写入剪贴板

时间:2014-01-30 09:50:38

标签: windows matlab clipboard octave

我正在寻找一种方法来将八度语句的输出输出到Windows剪贴板。

我没有搜索从cmd窗口手动复制/粘贴文本的方法(我知道这将如何工作)。我也没有想要获得一个完整的八度音程会话的整个输出,这可以通过启动带有脚本的八度音程来执行并将所有输出传递给某些clip.exe。 我想捕获将从octave promt或某个函数或脚本执行的单个语句的输出。

如果有人有一些建议会很棒。

编辑:
从评论中我了解到matlab的剪贴板命令,这个命令很难在八度音阶中实现 也许任何其他想法涉及花哨的system()来电?

2 个答案:

答案 0 :(得分:3)

嗯,显然它难以实现与Matlab非常相似的东西 - 经过几分钟的摆弄,看看我的新clipboard.m

function clipboard(data)
if ~ischar(data)
    data = mat2str(data);
end
data = regexprep(data, '\\','\\\\');
data = regexprep(data, '%','%%');
f = tempname;
h = fopen(f, 'w');
fprintf(h, data);
fclose(h);
system(['clip.exe < ' f]);
delete(f);
end

答案 1 :(得分:1)

您可以通过xclip命令始终调用system之类的内容。有关xclip用法的示例,请参阅here

以下Matlab命令适用于将多行内容放入Mac上的剪贴板中。大概你会用pbcopy代替xclip,它可以在linux上运行。

>> system(['echo "line1' 10 'line2' 10 'line3" | pbcopy'])