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

2 visualizaciones (últimos 30 días)
Haruki Yamaguchi
Haruki Yamaguchi el 5 de Jun. de 2018
Comentada: Naoya el 11 de Jun. de 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

Respuestas (2)

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

Iniciar sesión para comentar.

Categorías

Más información sobre 書式設定と注釈 en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!