Is there a command to copy output of fprintf (sent to the matlab terminal) to windows clipboard?

조회 수: 1 (최근 30일)
I output something to the matlab command terminal using fprintf llike this
>> fprintf('1\t2\t3\n')
1 2 3
I want to automatically copy the output "1 2 3" to the clipboard (same as manually dragging the mouse over it to select the text and pressing ctrl+C. Is there a matlab command to do this? Or is there a way to directly fprintf to the clipboard?I need it to preserve the "tab" inserted by \t.

채택된 답변

Steven Lord
Steven Lord 2024년 8월 21일
Use sprintf instead of fprintf and pass the output from sprintf into the clipboard function as the second input.
x1 = sprintf('%d squared is %d\n', [1:3; 1 4 9])
x1 =
'1 squared is 1 2 squared is 4 3 squared is 9 '
clipboard('copy', x1);
x2 = clipboard('paste')
x2 =
'1 squared is 1 2 squared is 4 3 squared is 9 '

추가 답변 (1개)

Walter Roberson
Walter Roberson 2024년 8월 21일
If it is not convenient to change the fprintf() to sprintf(), then there are two ways to proceed:
  • enclose the relevant function call in evalc() and assign the result to a character vector. The resulting character vector will contain all of the text generated during that function call. Then fish through the text to extract the portion you want and clipboard() it . This approach has the disadvantage that the captured text will not be displayed to the screen (not unless you specifically display it
  • Or; use diary() to turn on logging to a file, run the command, then turn diary off. Read the text from the file, and fish through the text to extract the portion you want and clipboard() it. The generated text will be displayed to the screen.

카테고리

Help CenterFile Exchange에서 Environment and Settings에 대해 자세히 알아보기

제품


릴리스

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by