Nếu bạn mới làm quen với MATLAB, hãy tham khảo bài viết về cú pháp và các khái niệm trong MATLAB của Mytour để có thêm thông tin. Đọc tiếp để hiểu rõ hơn về kỹ thuật nhập dữ liệu trong MATLAB.
MATLAB - Chiến Thuật Nạp Dữ Liệu
Hàm importdata cho phép bạn tải nhiều tệp dữ liệu với định dạng đa dạng vào MATLAB. Dưới đây là 5 hàm importdata quan trọng trong MATLAB và mô tả của chúng:
Mặc định, Octave không hỗ trợ hàm importdata(), vì vậy bạn cần tìm và cài đặt gói này để các ví dụ dưới đây hoạt động trên Octave.
Ví dụ 1
Dưới đây là ví dụ tải và hiển thị một hình ảnh. Hãy tạo một tệp script và nhập đoạn mã sau vào:
tên_tệp_tin = 'nu_cuoi.jpg';
A = importdata(tên_tệp_tin);
image(A);
Khi chạy tệp tin, MATLAB sẽ hiển thị hình ảnh. Lưu ý bạn cần phải lưu tệp tin hình ảnh trong thư mục hiện tại.
Ví dụ 2
Trong ví dụ này, chúng ta sẽ nhập tệp văn bản và chỉ định cách phân tách cũng như tiêu đề cột. Hãy tạo một tệp ASCII được phân tách bằng dấu cách với tiêu đề cột là weeklydata.txt.
Tệp tin weeklydata.txt có dạng như sau:
Hãy tạo một tệp script và nhập đoạn mã sau đây:
Khi chạy tệp tin, kết quả sẽ được hiển thị như sau:
Ví dụ 3
Trong ví dụ này, chúng ta sẽ nhập dữ liệu vào clipboard.
Sao chép dòng sau vào clipboard:
Toán học là đơn giản
Tạo một tệp script và nhập đoạn mã sau vào:
A = importdata('-pastespecial')
Khi chạy tệp, kết quả sẽ trả về như sau:
A =
'Toán học là đơn giản'
File I/O cấp thấp
Hàm importdata là hàm nhập dữ liệu trong MATLAB ở cấp cao. Các hàm file I/O cấp thấp trong MATLAB cho phép kiểm soát các chức năng đọc và ghi dữ liệu vào file ở mức thấp. Tuy nhiên, để chúng hoạt động hiệu quả, các hàm này yêu cầu thông tin chi tiết về tệp của bạn. MATLAB cung cấp các hàm dưới đây để thực hiện đọc và ghi dữ liệu ở mức byte hoặc ký tự:
Nhập file dữ liệu văn bản với I / O cấp thấp
MATLAB cung cấp các hàm dưới đây để nhập các file dữ liệu văn bản ở cấp thấp:
- Hàm fscanf đọc định dạng dữ liệu trong file văn bản hoặc file ASCII.
- Các hàm fgetl và fgets đọc 1 dòng của file tại 1 thời điểm, nơi mà một ký tự dòng mới phân cách mỗi dòng.
- Hàm fread đọc luồng dữ liệu ở mức độ byte hoặc bit.
Ví dụ
Giả sử file 'myfile.txt' được lưu trong thư mục hiện tại. File này chứa dữ liệu về lượng mưa trong 3 tháng: tháng 6, 7 và 8 năm 2012.
Dữ liệu trong myfile.txt bao gồm thời gian, tháng và lượng mưa đo ở 5 địa điểm. Tiêu đề của dữ liệu được ký hiệu là M:
File có định dạng như sau:
Thực hiện các bước sau để nhập dữ liệu vào file và hiển thị nó:
- Sử dụng hàm fopen để mở file và lấy định danh của nó.
- Sử dụng biến mô tả dữ liệu trong file, với '%' cho chuỗi, '%d' cho số nguyên, hoặc '% f' cho số thực dấu phẩy động (floating-point number).
Để loại bỏ các ký tự chữ trong file, thêm chúng vào mô tả định dạng. Để bỏ qua trường dữ liệu, sử dụng dấu hoa thị (*) trong biến.
Ví dụ, để đọc tiêu đề và trả về giá trị duy nhất cho M, bạn có thể viết như sau:
M = fscanf(fid, '%*s %*s\n%*s %*s %*s %*s\nM=%d\n\n', 1);
- Theo mặc định, fscanf đọc dữ liệu theo mô tả định dạng cho đến khi không tìm thấy sự khớp nào hoặc đến cuối file. Trong ví dụ này, chúng ta sử dụng vòng lặp để đọc 3 bộ dữ liệu, mỗi lần đọc 7 hàng và 5 cột.
- Tạo ra một cấu trúc mang tên là mydata trong không gian làm việc để lưu trữ dữ liệu đọc từ file. Cấu trúc này bao gồm 3 trường: thời gian, tháng và mảng raindata.
Tạo một file script và nhập đoạn mã sau đây:
Khi bạn chạy file, nó sẽ trả về kết quả như sau:
Với những thông tin về MATLAB - Cách nhập dữ liệu trong MATLAB mà Mytour vừa giới thiệu, hy vọng bạn có thêm nhiều kiến thức hữu ích về MATLAB. Bạn cũng có thể tham khảo các bài viết khác trên Mytour, ví dụ như cách thêm ký hiệu toán học trong MATLAB để nhanh chóng làm quen hơn với phần mềm này.