2012-03-05 11 views
2

matlabの図を変数が格納されているマットファイルに格納することは可能ですか?figを.matファイルに保存するには?

私は、マットファイルに格納された変数からプロットを生成したシナリオに入った。現在、別のファイルとしてFigureを格納しています。つまり、変数には1つのファイル、figureには1つのファイルがあります。しかし、私はそれらを1つのファイルにまとめたいと思います。

+0

MATファイルのドキュメントでは、最初の質問 'あなたは可能ですか?'の答えが「いいえ」であることが示されています。 –

答えて

4

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) 

関連するデータが大きい場合、匿名関数オブジェクトいるので、メモリを節約する必要があり、後者この例では、必要なすべてのデータ、つまりxyという独自の「コピー」が含まれています。

+1

'zip'はMatlab関数でさえあります – Jonas

1

クラスのインスタンスにデータと関数を格納し、後でその関数をunsignedしてデータをプロットする方法はありますか?

3

figファイルフォーマットにはhereという記事があり、それは実際に偽装されたマットファイルです。

figを取ってそのデータを構造体に保存し、マットファイルとして保存してから、マットファイルをロードし、保存した構造体をfigから作ります。

1

実際これは驚くほど簡単です。

問題の図を作成したばかりであるとします。 Figureハンドルを構造体に変換すると、Figureを表示するのに必要な対応する階層要素(データ、ラベル、すべてを含む)が生成されます。

この構造体は、データであるかのように、マットファイルに保存することができます。 (実際はそうです。)構造体の内容をFigureとして表示するには、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); 
関連する問題