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

1 visualizzazione (ultimi 30 giorni)
Haruki Yamaguchi
Haruki Yamaguchi il 5 Giu 2018
Commentato: Naoya il 11 Giu 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

Risposte (2)

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

Accedi per commentare.

Categorie

Scopri di più su 書式設定と注釈 in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!