MATLAB save command and transpose command

  • Context: MATLAB 
  • Thread starter Thread starter Saladsamurai
  • Start date Start date
  • Tags Tags
    Matlab Transpose
Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
4 replies · 14K views
Saladsamurai
Messages
3,009
Reaction score
7
I have a bunch of row vectors saved as objects r1 r2 r3. I would like to send each set of data (row) to a text file, but I want it to save as a column. This means that I want to save the transpose of the data, i.e., r1' r2'...

Unfortunately, when I try to use
Code:
save r1.txt r1' -ascii

MATLAB thinks that the quote ' is an unbalanced string.

I know that an "easy fix" would be to create new objects like R1=r1';

but I don't really think that is efficient. How can I get around this?

thanks
Casey
 
Physics news on Phys.org
any takers on this one?
 
Saladsamurai said:
any takers on this one?

As far as I know, the MATLAB function SAVE expects the following arguments:

save(<string (filename)>, <string (variable name 1)>, ... <string (variable name N)>, <string (options)>)

You are not passing the function actual variables, just the names. That's why you can't pass r1', because that is not a string.


Why is,

r1 = r1';
save('rrrrrs.txt', 'r1', '-ascii');

not efficient?

I mean, the transpose has to be done somewhere in memory.
 
FrogPad said:
Why is,

r1 = r1';
save('rrrrrs.txt', 'r1', '-ascii');

not efficient?

I mean, the transpose has to be done somewhere in memory.

Because if I have ten r values, I have to create 10 new R=r' values.

I suppose I could write a for loop that does it for me, but for only 10 entries, that seemed a little tedious (possibly just laziness :smile:).
 
lol, yeah.

You could probably write a wrapper around the save function, to do what you want.


function tSave(V)

vt = V';

save([num2str(V) '.txt'], 'vt', '-ascii');

end

then just call this little function instead