Как сохранить рис в .mat файле? - PullRequest
2 голосов
/ 05 марта 2012

Можно ли сохранить рисунок matlab внутри файла mat, где хранится переменная.

Я попал в сценарий, где я сгенерировал некоторый график из переменной, хранящейся в файле mat.В настоящее время я сохраняю фигуру в виде отдельного файла, это означает, что у меня есть 1 файл для переменных и еще один файл для фигуры.Но я хотел бы объединить их в один файл.

Ответы [ 4 ]

4 голосов
/ 05 марта 2012

Как насчет выбора обоих файлов в проводнике Windows и архивирования их?; -)

Серьезно, хотя я не знаю, как сделать именно то, что вы хотите (что именно, в любом случае? Вы ожидаете, что цифра появится после того, как вы набрали load variables.matи нажал клавишу ввода?) Я вижу, как это обойти:

Вы можете сохранить команды, необходимые для генерации фигуры, в анонимной функции или в виде строки и сохранить ее вместе со всеми другими переменными.Затем, после загрузки файла .mat, вы вызываете эту функцию или eval для строки, и рисунок будет восстановлен.

x=sort(rand(1,100)); y=sort(randn(1,100)); %# sample data
makefig = @() plot(x,y,'g.'); %# anonymous figure-generating function
save myDataAndFigure

clear all
load myDataAndFigure
makefig()

... или со строкой (например, при включении форматированияи команды маркировки осей)

x=sort(rand(1,100)); y=sort(randn(1,100)); %# sample data
figcmd = 'plot(x,y,''g.''); xlabel(''sort(U(0,1)''); ylabel(''sort(N(1,0)'');'
save myDataAndFigure

clear all
load myDataAndFigure
eval(figcmd)

Последние должны сохранять память, когда задействованные данные имеют большой размер, поскольку объект анонимной функции содержит все необходимые данные, то есть свою собственную «копию» x иy в примере.

3 голосов
/ 05 марта 2012

Здесь есть статья здесь о формате фигового файла и о том, как на самом деле это скрытый файл мата.

Таким образом, вы можете взять рис и сохранить его данные в структурах и сохранить их как файл мата, затем загрузить файл мата и сделать фиг из сохраненных вами структур.

1 голос
/ 03 октября 2012

На самом деле это удивительно легко сделать.

Предположим, вы только что создали нужную фигуру.Преобразование дескриптора рисунка в структуру дает соответствующие иерархические элементы (включая данные, метки, все), необходимые для отображения рисунка.

При желании эта структура может быть затем сохранена в файле mat, как если бы онабыли данные.(Это на самом деле.) Чтобы снова просмотреть содержимое структуры как фигуру, просто преобразуйте ее в дескриптор с помощью struct2handle.

% The line below converts the current figure handle into a struct.
this_fig = handle2struct(gcf) 

% The line below converts the struct "this_fig"  back to a figure handle and displays it.    
h = struct2handle(this_fig,0);
1 голос
/ 05 марта 2012

Как насчет хранения данных и функций в экземплярах класса и последующего удаления функций для построения графика данных?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...