|
|
5.並列計算(parfor)※要Parallel Computing Toolbox |
|
%--------------------------------------------------------- % parforループで並列処理 %--------------------------------------------------------- parpool(6); % ←ワーカーの数を指定 parfor k=1:length(fl); %<-----変数"fl"にファイルリストが入っているとする : : [parforループ内である変数X,Y,Zを計算したとする] [m_mapでマッピングしたとする] : : saveas(gcf, '*****.fig', 'fig');% ←マッピングした図をfig形式で保存 parsave(ofl,X,Y,Z); % ←以下に示す新規の関数parsaveを用意しておく : : end delete(gcp); % matlabpoolにさよなら ↑ =======なぜか別プログラムにしないと動かない・・・・============== ↓ %--------------------------------------------------------- % fig形式からjpgへ変換 %--------------------------------------------------------- for k=1:length(fl) hoge=fileList{k}; oflj=[hoge(1:26),'.jpg']; oflf=[hoge(1:26),'.fig']; uiopen(oflf,1); % <---------parfor ループで作った*.figファイルを開く print('-djpeg','-r200',oflj);% <------jpg形式で保存 delete oflf; % <------figファイルを削除 close all; end ※ちなみにparforループ内で図をjpeg等へ変換・保存しようとすると、とんでもない低解像度で出力される。 このサイトによるとワーカーは"-noFigureWindows"オプションで動くだからということ。バグではないらしい。 現時点でもサポートされていない模様。jpg保存は地道にやりなさいってことだ。 |
|
以下のスクリプトを適切なところに置いておき、パスを通しておけばよい。例は3変数を保存する場合。 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜ここから function parsave(fname,x,y,z) save(fname,'x','y','z') end 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜ここまで |