Figure配列にあ​るグラフの軸をすべて​変更する方法

조회 수: 1 (최근 30일)
Haruki Yamaguchi
Haruki Yamaguchi 2018년 6월 5일
댓글: Naoya 2018년 6월 11일
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

답변 (2개)

Naoya
Naoya 2018년 6월 8일
こちらでも簡単な下記のような簡単なコードで再現を試みてみましたが、特に報告頂いた症状は確認できていません。 以下のコードをお試しいただき、症状はあらわれますでしょうか?
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
Haruki Yamaguchi 2018년 6월 11일
プログラムを確認したところ、正常に動きました。ありがとうございます。 colormapの指定で、シングルコーテーションが実際に動かすプログラムの中で抜けていたようでした。
今回はfigureファイルで保存していますが、.matファイルで同様のことを行っているのですが、fig配列として保存し、load関数を利用して変数をインポートするときにどうしてもfigureがインポート中に表示されてしまいます。 .matファイルでfigure配列をインポートして表示させない方法はありますでしょうか。
  댓글 수: 1
Naoya
Naoya 2018년 6월 11일
正常動作を確認できたということで、安心しました。
matファイルへ保存する前段で、figure配列それぞれの Visibleプロパティを 0 へ設定することで、 load 経由でインポートする際、Figure の表示を回避することができるかと思います。

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 書式設定と注釈에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!