简体   繁体   中英

write octave/matlab output to clipboard

iam looking for a way to get the output of an octave statement to the windows clipboard.

iam not searching a way to just manually copy/paste text from the cmd window (i know how this would work). iam also not looking for getting the whole output of a complete octave session which could be gotten by launching octave with a script to execute and piping all output to some clip.exe.
i want to capture the output from some single statement that will be executed from octave promt or some function or script.

Would be great if someone has some advice.

Edit:
from a comment i learned about the clipboard command of matlab that is unfortunally not implemented yet in octave.
maybe any other ideas involving fancy system() calls?

Well, apparently it's not too difficult to implement something fairly similar to Matlab - after a few minutes of fiddling around, behold my new 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

You could always call something like xclip through a system command. For examples of xclip usage, see here

The following Matlab command works for putting multiline stuff into the clipboard on Mac. Presumably you would substitute pbcopy with xclip and it would work on linux.

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

如何将剪贴板中的内容移动到字符串变量中?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM