Figure配列にあるグラフの軸をすべて変更する方法
Show older comments
spectrogram関数を使いfigureを作成しており、複数のfigureを一つにまとめfigureファイル(.fig)として保存しております。
このとき.figファイルをMATLAB上で取り込み、figure配列にある各figureのカラーマップを変更するため、以下のようなプログラムを作成しましたがうまく動作しませんでした。
このプログラムでは変数figに入っている最後のfigureのみカラーマップがグレースケールに変更され、変更されたfigure1枚がコピーされて各fig(i)に同じものが代入されている状態になっています。
それぞれのfigureごとにカラーマップを変更する方法を教えて頂きたいです。
fig=openfig('all.fig','invisible'); % all.figには10個のfigureが入ってます
for i=1:10
colormap(fig(i),'gray');
end
Answers (2)
Naoya
on 8 Jun 2018
こちらでも簡単な下記のような簡単なコードで再現を試みてみましたが、特に報告頂いた症状は確認できていません。 以下のコードをお試しいただき、症状はあらわれますでしょうか?
figure,spectrogram(rand(1,100));
fig(1) = gcf;
figure,spectrogram(rand(1,100));
fig(2) = gcf;
figure,spectrogram(rand(1,100));
fig(3) = gcf;
figure,spectrogram(rand(1,100));
fig(4) = gcf;
savefig(fig,'all')
close all,clear all
fig = openfig('all.fig');
for i = 1:length(fig), colormap(fig(i),'gray'), end
Haruki Yamaguchi
on 11 Jun 2018
0 votes
1 Comment
Naoya
on 11 Jun 2018
正常動作を確認できたということで、安心しました。
matファイルへ保存する前段で、figure配列それぞれの Visibleプロパティを 0 へ設定することで、 load 経由でインポートする際、Figure の表示を回避することができるかと思います。
Categories
Find more on 書式設定と注釈 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!