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

1 visualización (últimos 30 días)
Kazutoshi Ishioka
Kazutoshi Ishioka el 22 de Oct. de 2020
Comentada: Kazutoshi Ishioka el 22 de Oct. de 2020
お世話になります
並列forループを用いた場合に、figureの見た目が変わってしまうのを解決したいです。
【内容】
figureをプロットして、以下のコードでファイルに保存しております
>> T_IMGFRAME = getframe( gcf ) ;
>> imwrite( T_IMGFRAME.cdata , T_FILE_NAME ) ;
通常に保存した場合と、並列forループ内で保存した場合で、同じコードで生成したfigureなのに画像に違いがあります
通常で保存した画像に比べて、並列処理内で保存した画像は、ラベル等の文字が小さくプロットした線も細いです
並列処理でも通常で保存した場合と同じ画像で保存できるでしょうか?
【参考画像】
よろしくお願い致します
  1 comentario
Kazutoshi Ishioka
Kazutoshi Ishioka el 22 de Oct. de 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
%%---------------------------------------------------------------------------
%%---------------------------------------------------------------------------
%%---------------------------------------------------------------------------

Iniciar sesión para comentar.

Respuestas (0)

Categorías

Más información sobre イメージ en Help Center y File Exchange.

Productos


Versión

R2019b

Community Treasure Hunt

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

Start Hunting!