CÁCH LƯU FILE TRONG MATLAB

      123

Trong một hàm MATLAB tôi đang viết, tôi đang tạo một hình. Hình được hiển thị khi chức năng được thực thi. Tôi cần lưu hình dưới dạng hình ảnh JPEG. Để làm điều đó, tôi có thể thực hiện File-> Save As trong cửa sổ hình hiển thị hình. Nhưng tôi muốn tự động hóa việc này. Tôi đã thử làm điều đó bằng cách sử dụng hàm saveas (). Vấn đề là hình ảnh kết quả là không mong muốn. Dưới đây là những hình ảnh cho một vấn đề demo để cho bạn thấy ý tôi là:

Hình ảnh JPEG được lưu thủ công bằng cách sử dụng Tệp-> Lưu dưới dạng trong cửa sổ hình MATLAB: 

*

JPEG Ảnh được lưu bằng hàm saveas () (lưu ý rằng các ô không đẹp và các tiêu đề trùng nhau): 

*

Đây là hàm MATLAB trong đó tôi tạo hình và lưu hình dưới dạng JPEG bằng saveas ():

function JpgSaveIssueDemo( ) figure( 1 ); t = 0:0.1:8; subplot( 2, 2, 1 ); plot( t, sin(t) ); title( "Plot 1 of Example to Demonstrate JPG Save Issue", "FontSize", 18 ); subplot( 2, 2, 2 ); plot( t, sin(t) ); title( "Plot 2 of Example to Demonstrate JPG Save Issue", "FontSize", 18 ); subplot( 2, 2, 3 ); plot( t, sin(t) ); title( "Plot 3 of Example to Demonstrate JPG Save Issue", "FontSize", 18 ); subplot( 2, 2, 4 ); plot( t, sin(t) ); title( "Plot 4 of Example to Demonstrate JPG Save Issue", "FontSize", 18 ); saveas( gcf, "DemoPlot", "jpg" );endCon số được hiển thị khi JpgSaveIssueDemo () được thực thi không được tối đa hóa. Vì vậy, tôi nghĩ rằng nếu tôi có thể tối đa hóa nó bằng cách sử dụng chức năng gọi/s trong JpgSaveIssueDemo () trước saveas (), thì hình ảnh JPEG được lưu sẽ xuất hiện tốt.

Vì vậy, tôi đã sử dụng mã này trước dòng saveas () trong JpgSaveIssueDemo () để tối đa hóa con số:

drawnow;jFrame = get(handle(gcf),"JavaFrame"); jFrame.setMaximized(true);Sau đó, con số được hiển thị là tối đa. Tuy nhiên, kết quả là như nhau: hình ảnh JPEG vẫn xuất hiện không mong muốn.

Có thể làm gì cho việc này?


Bạn đang xem: Cách lưu file trong matlab

matlabmatlab-figure
Hộp thoại xuất hình Matlab và hàm saveas() thiếu nhiều chức năng mong muốn. Đặc biệt, savas() không thể tạo hình ảnh thay đổi tùy chỉnh, đó là lý do tại sao kết quả của bạn trông kém. Để tạo hình ảnh bitmap, tôi khuyên bạn nên sử dụng chức năng của bên thứ ba export_fig . Bằng cách thêm mã sau vào chức năng của bạn (bao gồm cả mẹo tối đa hóa)

set(gcf, "Color", "white"); % white bckgrexport_fig( gcf, ... % figure handle "Export_fig_demo",... % name of output file without extension "-painters", ... % renderer "-jpg", ... % file format "-r72" ); % resolution in dpiTôi đã tạo hình ảnh này: (sử dụng "hiển thị hình ảnh" hoặc tương tự trong trình duyệt của bạn để lấy kích thước ban đầu)

*

Đối với chất lượng cao hơn, sử dụng độ phân giải cao hơn 150 hoặc thậm chí 300 dpi (đối với in). Thay vì tối đa hóa cửa sổ hình, đối với hầu hết các ứng dụng, phù hợp để xác định kích thước trục để có được hình ảnh có kích thước mong muốn:

unitSave = get(figureHandle, "Unit"); % store original unitset(figureHandle, "Unit", "centimeters"); % set unit to cmset(figureHandle,"position",<0 0 width height>); % set sizeset(figureHandle, "Unit", unitSave); % restore original unit

Xem thêm: Vé Tàu Từ Ga Hà Nội Đi Tàu Từ Hà Nội Vào Sài Gòn Mất Bao Lâu ?

Chỉ cần sử dụng định dạng có thể mở rộng không mất dữ liệu như EPS, xem dòng cuối cùng trong đoạn trích dưới đây :)

h1=figure % create figureplot(t,Data,"r");legend("Myfunction");% Create title with required font sizetitle({"Variance vs distance"},"LineWidth",4,"FontSize",18,..."FontName","Droid Sans");% Create xlabel with required font sizexlabel({"Distance (cm)"},"FontSize",14,..."FontName","DejaVu Sans");% Create ylabel with required font sizeylabel({"Variance of sobel gradients"},"FontSize",14,..."FontName","DejaVu Sans");print(h1,"-depsc","autofocus.eps") % print figure to a fileTôi không thể đính kèm tệp EPS ở đây, không được hỗ trợ, nhưng nó có thể mở rộng và có thể được đặt trong bộ xử lý Word hoặc latex mà không lo lắng về độ phân giải xấu.


Đặt kích thước hình đồ thị

Làm thế nào để thêm một đường trục x vào hình? (chiếu)

Matlab - Làm thế nào để tạo ra một con số hiện tại? Làm thế nào để làm cho một trục hiện tại?

Làm thế nào để có được loại biến trong MATLAB?

Làm thế nào để hiển thị (in) vector trong Matlab?

.m tệp dưới dạng MATLAB/Octave cho văn bản tuyệt vời

Làm thế nào để vẽ mũi tên với tọa độ dữ liệu trong Matlab?

làm thế nào để dừng tập lệnh đang chạy trong Matlab

Làm cách nào tôi có thể vẽ một mặt phẳng 3D trong Matlab?

Làm thế nào để bạn ghép các hàng của ma trận thành một vectơ?

Đại diện và giải quyết một mê cung cho một hình ảnh

Làm cách nào để có được tất cả các tệp trong một thư mục cụ thể trong MATLAB?

Làm cách nào tôi có thể áp dụng một hàm cho mỗi hàng/cột của ma trận trong MATLAB?

Làm thế nào để bình thường hóa một vectơ trong MATLAB hiệu quả? Bất kỳ chức năng tích hợp liên quan?

Làm cách nào để tôi khởi tạo tất cả các mục của ma trận với một giá trị cụ thể?

Làm thế nào để bình thường hóa một tín hiệu về không trung bình và phương sai đơn vị?

Làm cách nào để phát hiện các ô trống trong một mảng ô?

Làm cách nào để tôi truy cập các trường cấu trúc một cách linh hoạt?

Làm thế nào để gọi tập lệnh MATLAB từ dòng lệnh?

Làm cách nào để thực hiện nhiều bài tập trong MATLAB?