Save matrix from "writematrix" to clipboard

Hi, I need to save a matrix to the clipboard. Because the points need to be seperated by comma, I used the function "writematrix".
a = [1 2 4;5 6 7;8 9 10];
writematrix(a,'Bachelorarbeit.txt')
type Bachelorarbeit.txt
1,2,4 5,6,7 8,9,10
Now i need to save the matrix shown in Matlab to the clipboard. Is there a way to do so? I could not find anything.
Thanks for helping me.

2 Commenti

There is a function named clipboard (clipboard) which might help you.
Hi, I already tried it with clipboard. The problem is that I need to save it in the exact way it is shwon in the text file. But I don't know how to do that.

Accedi per commentare.

 Risposta accettata

You've got to create the entire text as a string or char() variable.
It would be more efficient to avoid the intermediary disk file...
a = [1 2 4;5 6 7;8 9 10];
fmt=[repmat('%g,',1,size(a,2)-1) '%g\n'];
clipboard('copy',sprintf(fmt,a.'))
content=clipboard("paste")
content =
'1,2,4 5,6,7 8,9,10 '

3 Commenti

Hi dpd,
this is execatly what I was looking for. But can you tell me why it loses so many decimal places? For the intentuon that I created my code I need more than 2-4 decimal places, that's why I have chosen 'format long', but in this part of the code it changes to about 2-4 digits.
in my code the matrix looks like this, but is much longer
a =
0 0 1.000000000000000
0.017150418627992 0 0.823370357174576
0.072731407686129 0 0.654969826345343
0.167425334872282 0 0.505049838368501
0.293716496272837 0 0.380416474388619
0.441054925718054 0 0.281320429539904
I fugured it out by myself. You just need to change the mode of sprintf form g to f.
Thank you so much!

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by