Как пользователь может сохранить графический интерфейс (результат) в другой папке? - PullRequest
0 голосов
/ 21 февраля 2011

Вы все здесь действительно помогаете мне с Matlab, так как я новичок.Теперь я знаю немного о GUI в Matlab.У меня вопрос.у меня есть фигура графического интерфейса и кнопка сохранения.Я сделал эту кодировку:

filename = inputdlg('Please enter the name for your figures');

extensions = {'fig','bmp'};

for k = 1:length(extensions

saveas(gcf, filename{:}, extensions{k})

set(gcf,'PaperPositionMode','auto')

end

Но это можно сохранить только в папке моего графического интерфейса.Как я хочу, чтобы пользователь мог выбрать, какую папку он хочет сохранить в графическом интерфейсе .bmg файла ??

Я использую эту кодировку как редактирование из предложения @gnovice:

filename = inputdlg('Please enter the name for your figures');

extensions = {'fig','bmp'};

directoryName = uigetdir;  %# Open directory-selection dialog

if directoryName == 0      %# User pressed the "Cancel" button...

  directoryName = '';      %#   ...so choose the empty string for the folder

end

saveas(gcf,fullfile(directoryName,fileName),extension);  %# Save to the folder

set(gcf,'PaperPositionMode','auto')

Но эта ошибка произошла:

??? Error while evaluating uipushtool ClickedCallback

??? Undefined function or variable 'fileName'.

Error in ==> fyp_editor>uipushtool9_ClickedCallback at 1605
saveas(gcf,fullfile(directoryName,fileName),extension);  %# Save to the folder

Error in ==> gui_mainfcn at 96
        feval(varargin{:});

Error in ==> fyp_editor at 42
    gui_mainfcn(gui_State, varargin{:});

Error in ==>
@(hObject,eventdata)fyp_editor('uipushtool9_ClickedCallback',hObject,eventdata,guidata(hObject))


??? Error while evaluating uipushtool ClickedCallback

1 Ответ

4 голосов
/ 21 февраля 2011

Вы, очевидно, уже знаете о диалоговом окне INPUTDLG (поскольку вы используете его выше), поэтому я удивлен, что вы также не сталкивались с диалоговым окном UIGETDIR (или любой другой в этом отношении). Вы можете использовать это, чтобы позволить пользователю просматривать и выбирать папку, например так:

fileName = inputdlg('Please enter the name for your figures');
directoryName = uigetdir('','Please select a folder to save to');
if directoryName == 0      %# User pressed the "Cancel" button...
  directoryName = '';      %#   ...so choose the empty string for the folder
end
filePath = fullfile(directoryName,fileName{1});  %# Create the file path
extensions = {'fig','bmp'};
for k = 1:length(extensions)
  saveas(gcf,filePath,extensions{k});  %# Save the file
  set(gcf,'PaperPositionMode','auto');
end

Обратите внимание, что я использовал функцию FULLFILE для создания пути к файлу, который автоматически позаботится о разделителях файлов , необходимых для данной платформы.

...