5. CHƯƠNG V: SCRIPTS VÀ FUNCTIONS (M-FILES)
5.7. Đọc dữliệu từfile và ghi ra file
(SV 45B không học/chưa học phần này)
- Nhập dữ liệu trực tiếp từ bàn phím sẽ trở nên không thể (không thực tế) khi Lượng dữ liệu quá lớn
Dữ liệu đó được dùng cho phân tích nhiều lần
Trong những trường hợp này thì người sử dụng Matlab sẽ chọn cách nhập/xuất dữ liệu với file dữ liệu.
- Hai lệnh save và load mà ta đã học ở chương 2 cũng có chức năng ghi vàđọc giá trị của các biến vào/từ đĩa.
- Khi làm việc với file dữ liệu, một điều cốt yếu cần lưu ý là định dạng của dữ
liệu phải đúng. Định dạng dữ liệu là chìa khóa quyết định việc biên dịch dữ liệu. Có hai dạng file dữ liệu: formatted và unformatted (có định dạng và không định dạng).
File dữ liệu có định dạng sử dụng cách định dạng chuỗi để khai báo chính xác xem dữ liệu được lưuở vị trí nào và nhưthế nào.
File dữ liệu không định dạng thì khác, nó chỉ định rõđịnh dạng của số.
Cáchđơn giản nhất để học cách làm việc với file dữ liệulà thông qua ví dụ sau: Giả sử dữ liệu dạng số được lưu trong file có tên ‘table.dat’ trong thưmục hiện hành, dữ liệu nhưsau
200 4564 300 3653 400 6798 500 6432 3 lệnh sau >> fid = fopen('table.dat','r'); >> a = fscanf(fid,'%3d%4d'); >> fclose(fid); sẽ lần lượt làm các nhiệm vụ:
Mở một file để đọc, việc này được chỉ định bằng chuỗi ‘r’, (rlà viết tắt của read). Biến fid được gán cho một giá trị bằng 1 số nguyên tố duy nhất, đặc trưng cho file sẽ sử dụng (số này còn gọi là số chỉ thị của file). Sau này mỗi khi nhắc đến file này chúng ta sẽ sử dụng số chỉ thịfid. Đọc vào bộ nhớ từng cặp số từ file (file có số chỉ thị làfid), một số có 3
chữ số và một số có 4 chữ số. Đóng file (file có số chỉ thị làfid).
Quá trình này tạo ra một véc tơcột chứa các phần tử 100 2256 200 4564 ...500 6432. Véctơnày có thể được chuyển đổi về ma trận 5x2 bằng lệnh:
A = reshape(2,2,5)';
...(lược bớt)...(xem thêm Help nếu cần thiết) ...