Export figure using print with variable as the file name
    조회 수: 13 (최근 30일)
  
       이전 댓글 표시
    
x1=1:1:1000;
check = rand(1000,35);
cmap = hsv(5);
for K = 1 : 5
    thiscolor = cmap(K,:);
    figure
    for J = K:5:35
        plot(x1,check(:,J), '-o','color', thiscolor);
        grid on
        grid minor
        hold on
    end
   set(gca,'fontweight','bold','FontSize',25)
   print(gcf,'E%d.png',K,'-dpng','-r600');  %Here is the problem
end
How to export the figure with K as the variable
댓글 수: 0
채택된 답변
  Adam Danz
    
      
 2023년 1월 6일
        
      편집: Adam Danz
    
      
 2023년 1월 7일
  
      Use exportgraphics (or another function export function, if needed) and define the filename using sprintf. 
Example: 
fig = figure(); 
% do your plotting here
filename = sprintf('E%d.png', k);
exportgraphics(fig,filename,'Resolution',600)
Alternatively, 
filename = string(k);
추가 답변 (1개)
  Adam
 2023년 1월 6일
        The problem with this code is that the print function is not being used correctly. The first argument to print should be the file name to save the plot to, but in this case it is the handle to the figure object that is being plotted. The file name should be specified as the second argument, using the '-f' option.
To fix the problem, you can change the line
print(gcf,'E%d.png',K,'-dpng','-r600');
TO
print('-f','E%d.png',K,'-dpng','-r600');
댓글 수: 1
  Adam Danz
    
      
 2023년 1월 7일
				The leading figure handle argument is supported:  print(fig,___)
The K is the problem since it is not part of the filename.
참고 항목
카테고리
				Help Center 및 File Exchange에서 Printing and Saving에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!







