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

4 Ansichten (letzte 30 Tage)
Haruki Yamaguchi
Haruki Yamaguchi am 5 Jun. 2018
Kommentiert: Naoya am 11 Jun. 2018
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

Antworten (2)

Naoya
Naoya am 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
Haruki Yamaguchi am 11 Jun. 2018
プログラムを確認したところ、正常に動きました。ありがとうございます。 colormapの指定で、シングルコーテーションが実際に動かすプログラムの中で抜けていたようでした。
今回はfigureファイルで保存していますが、.matファイルで同様のことを行っているのですが、fig配列として保存し、load関数を利用して変数をインポートするときにどうしてもfigureがインポート中に表示されてしまいます。 .matファイルでfigure配列をインポートして表示させない方法はありますでしょうか。
  1 Kommentar
Naoya
Naoya am 11 Jun. 2018
正常動作を確認できたということで、安心しました。
matファイルへ保存する前段で、figure配列それぞれの Visibleプロパティを 0 へ設定することで、 load 経由でインポートする際、Figure の表示を回避することができるかと思います。

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu 書式設定と注釈 finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!