I wanna create a txt file and assign data from matlab variables into this file. The point is I wanna create txt file without opening any file like in the case of "save as" in world or excel. I also want that user can choose directory and file name.

for example,
p = rand(5, 3)
startingFolder = 'C:\Program Files\MATLAB'
if ~exist(startingFolder, 'dir')
startingFolder = pwd
end
defaultFileName = fullfile(startingFolder, '*.txt*')
[baseFileName, folder] = uigetfile(defaultFileName, 'Select a file')
if baseFileName == 0
return
end
fullFileName = fullfile(folder, baseFileName)
save(fullFileName, 'p', 'q', '-ASCII')
in here, I want that users don't have to need to open any file before saving data into this file , like in the "save as". So users would choose path and file name in the same dialog box once, then file would be saved directly without creating a blank txt file before.

Answers (1)

Change uigetfile to uiputfile.

6 Comments

it gives error "Unable to write file C:\Users\Hp\Desktop\xxx.txt*: Invalid argument."
error in uisave_deneme (line 15)
save(fullFileName, 'p', 'q', '-ASCII')
Is the selected filename C:\Users\Hp\Desktop\xxx.txt* ? The * will cause issues.
ok I removed * but how can I eliminate exponential display in txt file
A quick hack would be:
fullFileName(fullFileName == '*') = [];
I think you have an extraneous * in your default file extension, if you remove that, it ought to work.
thank you Lain, finally could you tell me how can I eliminate exponential display in txt file?
I'm not sure you can using "save".
I'm not sure what you're really aiming for, but "dlmwrite", "csvwrite", and "xlswrite" are probably better suited to outputting nicely formatted text.

Sign in to comment.

Categories

Asked:

on 28 May 2013

Community Treasure Hunt

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

Start Hunting!