save
Trong MATLAB: Lưu Biến Workspace Hiệu QuảBạn đang tìm cách lưu trữ dữ liệu từ workspace MATLAB của mình một cách hiệu quả? Hàm save
là một công cụ mạnh mẽ cho phép bạn thực hiện điều này một cách dễ dàng. Bài viết này sẽ cung cấp cho bạn một hướng dẫn toàn diện về cách sử dụng hàm save
, bao gồm các cú pháp, định dạng file, tùy chọn phiên bản và nén, cũng như các ví dụ thực tế để bạn có thể áp dụng ngay lập tức. Việc nắm vững hàm save
sẽ giúp bạn quản lý dữ liệu một cách khoa học và tối ưu hóa quy trình làm việc trong MATLAB.
save
Hàm save
có nhiều cú pháp khác nhau, cho phép bạn linh hoạt lưu trữ dữ liệu theo nhu cầu cụ thể của mình. Dưới đây là một số cú pháp phổ biến:
save(filename)
: Lưu tất cả các biến từ workspace hiện tại vào một file MATLAB nhị phân (.mat) có tên là filename
. Nếu filename
đã tồn tại, nó sẽ bị ghi đè.save(filename, variables)
: Chỉ lưu các biến được chỉ định bởi variables
. variables
có thể là một chuỗi hoặc một cell array chứa tên của các biến cần lưu.save(filename, variables, fmt)
: Lưu các biến theo định dạng file được chỉ định bởi fmt
. Ví dụ: '-ascii'
để lưu ở định dạng ASCII.save(filename, variables, version)
: Lưu các biến theo phiên bản MAT-file được chỉ định bởi version
.save(filename, variables, version, "-nocompression")
: Lưu các biến vào MAT-file mà không cần nén.save(filename, variables, "-append")
: Thêm các biến mới vào một file đã tồn tại. Nếu một biến đã tồn tại trong file, nó sẽ bị ghi đè.save(filename, variables, "-append", "-nocompression")
: Thêm các biến mới vào một file đã tồn tại mà không cần nén.save filename
: Cú pháp lệnh (command form) của hàm save
.filename
- Tên Filefilename
là một chuỗi ký tự hoặc một biến chuỗi chứa tên của file mà bạn muốn lưu dữ liệu vào. Nếu bạn không chỉ định phần mở rộng, MATLAB sẽ tự động thêm phần mở rộng .mat
. Nếu bạn không chỉ định đường dẫn đầy đủ, file sẽ được lưu trong thư mục làm việc hiện tại. Bạn cần có quyền ghi vào file.
Ví dụ:
"myFile.mat"
"data/results.mat"
variables
- Tên Các Biến Cần LưuTham số variables
cho phép bạn chỉ định các biến cụ thể mà bạn muốn lưu vào file. Bạn có thể sử dụng các cú pháp sau:
var1, var2, ..., varN
: Lưu các biến được liệt kê. Ví dụ: save("data.mat", "A", "B", "C")
."*"
: Sử dụng ký tự đại diện để khớp với các biến có tên bắt đầu bằng một ký tự cụ thể. Ví dụ: save("data.mat", "A*")
sẽ lưu tất cả các biến có tên bắt đầu bằng "A"."-regexp", expr1, expr2, ..., exprN
: Lưu các biến có tên khớp với biểu thức chính quy (regular expressions)."-struct", structName
: Lưu các trường của cấu trúc structName
thành các biến riêng lẻ trong file."-fromstruct", struct(var1, value1, var2, value2, ..., varN, valueN)
: Lưu các biến với tên và giá trị từ cấu trúc được chỉ định.fmt
- Định Dạng FileTham số fmt
chỉ định định dạng file mà bạn muốn sử dụng để lưu dữ liệu. Các tùy chọn phổ biến bao gồm:
"-mat"
(mặc định): Định dạng MAT-file nhị phân."-ascii"
: Định dạng văn bản ASCII với độ chính xác 8 chữ số."-ascii", "-tabs"
: Định dạng văn bản ASCII phân tách bằng tab với độ chính xác 8 chữ số."-ascii", "-double"
: Định dạng văn bản ASCII với độ chính xác 17 chữ số."-ascii", "-double", "-tabs"
: Định dạng văn bản ASCII phân tách bằng tab với độ chính xác 17 chữ số.Khi lưu vào định dạng văn bản, mỗi biến phải là một mảng 2D kiểu double
. Chỉ phần thực của số phức được lưu. Dữ liệu từ mỗi biến được ghi tuần tự vào file.
version
- Phiên Bản MAT-FileTham số version
chỉ định phiên bản của MAT-file mà bạn muốn tạo. Các tùy chọn bao gồm:
"-v7.3"
: Phiên bản 7.3 (R2006b) trở lên. Hỗ trợ lưu các phần của biến và tất cả các tính năng của phiên bản 7."-v7"
: Phiên bản 7.0 (R14) trở lên. Hỗ trợ mã hóa ký tự Unicode và tất cả các tính năng của phiên bản 6."-v6"
: Phiên bản 5 (R8) trở lên. Hỗ trợ lưu mảng N chiều, cell arrays và structure arrays."-v4"
: Tất cả các phiên bản. Hỗ trợ lưu mảng 2D kiểu double
, character và sparse.Nếu bạn chỉ định một phiên bản không hỗ trợ các tính năng được sử dụng trong dữ liệu của bạn, MATLAB sẽ không lưu các mục đó và đưa ra cảnh báo.
Để lưu tất cả các biến từ workspace vào file test.mat
:
filename = "test.mat";
save(filename);
Hoặc sử dụng cú pháp lệnh:
save test.mat
Để lưu các biến p
và q
vào file pqfile.mat
:
p = rand(1,10);
q = ones(10);
save("pqfile.mat", "p", "q");
Hoặc sử dụng cú pháp lệnh:
save pqfile.mat p q
Để lưu các biến p
và q
vào file ASCII pqfile.txt
:
p = rand(1,3);
q = ones(3);
save("pqfile.txt", "p", "q", "-ascii");
Hoặc sử dụng cú pháp lệnh:
save pqfile.txt p q -ascii
Để lưu các trường của cấu trúc s1
thành các biến riêng lẻ trong file newstruct.mat
:
s1.a = 12.7;
s1.b = {"abc", [4 5; 6 7]};
s1.c = "Hello!";
save("newstruct.mat", "-struct", "s1");
Để lưu các biến A
và B
vào file example.mat
ở định dạng Version 7.3:
A = rand(5);
B = magic(10);
save("example.mat", "A", "B", "-v7.3");
Hoặc sử dụng cú pháp lệnh:
save example.mat A B -v7.3
Để lưu các biến A
và B
vào file myFile.mat
ở định dạng Version 7.3 mà không nén:
A = rand(5);
B = magic(10);
save("myFile.mat", "A", "B", "-v7.3", "-nocompression");
Hoặc sử dụng cú pháp lệnh:
save myFile.mat A B -v7.3 -nocompression
Để thêm biến a
vào file test.mat
đã tồn tại:
p = rand(1,10);
q = ones(10);
save("test.mat", "p", "q");
a = 50;
save("test.mat", "a", "-append");
fprintf
.save
có thể tạo ra một file lớn vì file chứa tất cả thông tin cần thiết để tạo lại đối tượng.save
để lưu figures. Hãy sử dụng hàm savefig
thay thế.Hàm save
là một công cụ quan trọng để lưu trữ dữ liệu trong MATLAB. Bằng cách hiểu rõ các cú pháp, tham số và tùy chọn khác nhau, bạn có thể sử dụng hàm save
một cách hiệu quả để quản lý dữ liệu của mình. Hy vọng bài viết này đã cung cấp cho bạn một hướng dẫn toàn diện và dễ hiểu về hàm save
trong MATLAB.
Bài viết liên quan