for と parfor でfigureの画像が異なるのを解決したいです

1 Ansicht (letzte 30 Tage)
Kazutoshi Ishioka
Kazutoshi Ishioka am 22 Okt. 2020
お世話になります
並列forループを用いた場合に、figureの見た目が変わってしまうのを解決したいです。
【内容】
figureをプロットして、以下のコードでファイルに保存しております
>> T_IMGFRAME = getframe( gcf ) ;
>> imwrite( T_IMGFRAME.cdata , T_FILE_NAME ) ;
通常に保存した場合と、並列forループ内で保存した場合で、同じコードで生成したfigureなのに画像に違いがあります
通常で保存した画像に比べて、並列処理内で保存した画像は、ラベル等の文字が小さくプロットした線も細いです
並列処理でも通常で保存した場合と同じ画像で保存できるでしょうか?
【参考画像】
よろしくお願い致します
  1 Kommentar
Kazutoshi Ishioka
Kazutoshi Ishioka am 22 Okt. 2020
%% サンプルコードです
%%---------------------------------------------------------------------------
disp( ['テスト用のパラメタ設定'] ) ;
T_NUM = 30 ;
T_DAT = floor( rand( T_NUM , 5 )*100 ) ;
%%---------------------------------------------------------------------------
%%---------------------------------------------------------------------------
%%---------------------------------------------------------------------------
%%---------------------------------------------------------------------------
disp( ['ノーマル実行'] ) ;
T_IMG_DIR_NAME = [ '.\\ImageSeriesSTD' ] ;
mkdir( T_IMG_DIR_NAME ) ;
for( T_CI=(1:+1:T_NUM) )
fg = figure('Color',[1 1 1]) ;
plot( (0:+1:360) , T_DAT(T_CI,2)*sin( (0:+1:360)*(2*pi)/360*50/T_DAT(T_CI,3) ) , 'b-' ) ;
hold on ;
plot( (0:+1:360) , T_DAT(T_CI,4)*sin( (0:+1:360)*(2*pi)/360*50/T_DAT(T_CI,5) ) , 'b-' ) ;
plot( 180 , T_DAT(T_CI,1) , '*r' ) ;
text( 200 , T_DAT(T_CI,1) , [ 'TEXTです' ] ...
, 'FontWeight','bold' , 'FontSize',30 , 'Color',[0.2 0.3 1.0] , 'FontName','MS ゴシック' ) ;
title( [ 'これは title です' ] ) ;
xlabel( [ 'これは X 軸です' ] ) ;
ylabel( [ 'これは Y 軸です' ] ) ;
grid on ; box on ;
T_IMGFRAME = getframe( gcf ) ;
imwrite( T_IMGFRAME.cdata , [ T_IMG_DIR_NAME '\TestImage' num2str(T_CI,'%04d') '.png' ] ) ;
close( fg ) ;
end
%%---------------------------------------------------------------------------
%%---------------------------------------------------------------------------
%%---------------------------------------------------------------------------
%%---------------------------------------------------------------------------
%%---------------------------------------------------------------------------
%%---------------------------------------------------------------------------
disp( ['パラレル実行'] ) ;
T_IMG_DIR_NAME = [ '.\\ImageSeriesPAR' ] ;
mkdir( T_IMG_DIR_NAME ) ;
parfor( T_CI=(1:+1:T_NUM) )
fg = figure('Color',[1 1 1]) ;
plot( (0:+1:360) , T_DAT(T_CI,2)*sin( (0:+1:360)*(2*pi)/360*50/T_DAT(T_CI,3) ) , 'b-' ) ;
hold on ;
plot( (0:+1:360) , T_DAT(T_CI,4)*sin( (0:+1:360)*(2*pi)/360*50/T_DAT(T_CI,5) ) , 'b-' ) ;
plot( 180 , T_DAT(T_CI,1) , '*r' ) ;
text( 200 , T_DAT(T_CI,1) , [ 'TEXTです' ] ...
, 'FontWeight','bold' , 'FontSize',30 , 'Color',[0.2 0.3 1.0] , 'FontName','MS ゴシック' ) ;
title( [ 'これは title です' ] ) ;
xlabel( [ 'これは X 軸です' ] ) ;
ylabel( [ 'これは Y 軸です' ] ) ;
grid on ; box on ;
T_IMGFRAME = getframe( gcf ) ;
imwrite( T_IMGFRAME.cdata , [ T_IMG_DIR_NAME '\TestImage' num2str(T_CI,'%04d') '.png' ] ) ;
close( fg ) ;
end
%%---------------------------------------------------------------------------
%%---------------------------------------------------------------------------
%%---------------------------------------------------------------------------

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Kategorien

Mehr zu イメージ finden Sie in Help Center und File Exchange

Produkte


Version

R2019b

Community Treasure Hunt

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

Start Hunting!