MATLAB - Cách nhập dữ liệu
Nhập dữ liệu trong MATLAB được hiểu là tải dữ liệu từ file bên ngoài. Để tìm hiểu chi tiết hơn về trong MATLAB, trong bài viết dưới đây Zaidap.com sẽ giới thiệu cho bạn cách nhập dữ liệu trong MATLAB. ...
Nếu chưa làm quen với MATLAB, bạn có thể tham khảo bài viết MATLAB, các cú pháp trong MATLAB của Zaidap.com để biết thêm thông tin nhé. Tham khảo tiếp bài viết dưới đây để tìm hiểu về trong MATLAB.
Hàm importdata cho phép bạn nạp nhiều file dữ liệu với nhiều định dạng khác nhau trong MATLAB. Dưới đây là 5 hàm importdata trong MATLAB và mô tả:
Mặc định Octave không hỗ trợ hàm importdata(), vì vậy bạn sẽ phải tìm kiếm và cài đặt gói này để các ví dụ dưới đây hoạt động trên hàm được cài đặt trong Octave.
Ví dụ 1
Dưới đây là ví dụ tải và hiển thị 1 file ảnh. Tạo 1 file script và nhập đoạn mã dưới đây vào đó:
filename = 'smile.jpg';
A = importdata(filename);
image(A);
Khi chạy file, MATLAB sẽ hiển thị file hình ảnh. Tuy nhiên bạn phải lưu trữ file hình ảnh này trong thư mục hiện tại.
Ví dụ 2
Ở ví dụ này là nhập file text và chỉ định phân tách và tiêu đề cột. Tạo file ASCII dược phân tách bằng dấu cách với tiêu đề cột là weeklydata.txt.
File weeklydata.txt có dạng như dưới đây:
Tạo một file script và nhập đoạn mã dưới đây vào:
Khi chạy file, nó sẽ hiển thị kết quả dưới đây:
Ví dụ 3
Trong ví dụ này là nhập dữ liệu vào clipborad.
Sao chép dòng dưới đây vào clipboard:
Mathematics is simple
Tạo 1 file script và nhập đoạn mã dưới đây vào:
A = importdata('-pastespecial')
Khi chạy file, nó sẽ trả về kết quả dưới đây:
A =
'Mathematics is simple'
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 nhiều nhất. Tuy nhiên các hàm này cần các thông tin chi tiết về file của bạn để hoạt động hiệu quả. MATLAB cung cấp các hàm dưới đây để thực hiện đọc và ghi dữ liệu ở cấp đội 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 taik. File này có chứa cá dữ liệu về lượng mưa trong 3 tháng: tháng 6, 7 và 8 trong năm 2012.
Dữ liệu trong file myfile.txt bao gồm thời gian, tháng và lượng mưa được đo ở 5 địa điểm. Dữ liệu tiêu đề là số tháng, được ký hiệu là M:
File sẽ có dạng:
Thực hiện theo các bước dưới đây để nhập dữ liệu vào file và hiển thị dữ liệu:
- Mở file bằng hàm fopen và lấy định danh file.
- Mô tả dữ liệu trong file bằng biến như "%" cho chuỗi, "%d" chp số nguyên, hoặc "% f" cho số thực dấu phẩy động (floating-point number).
Để bỏ qua các ký tự chữ trong file, thêm các ký tự này trong 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 viết:
M = fscanf(fid, '%*s %*s %*s %*s %*s %*s M=%d ', 1);
- Mặc định fscanf đọc dữ liệu theo mô tả định dạng cho đến khi hàm không tìm thấy bất kỳ đối sánh nào cho dữ liệu hoặc đến cuối file. Trong ví dụ này sẽ sư dụng vòng lặp để đọc 3 bộ dữ liệu và mỗi lần nó sẽ đọc 7 hàng và 5 cột.
- Tạo một cấu trúc có tên là mydata trong không gian để lưu dữ liệu đọc từ file. Cấu trúc này 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ã dưới đây vào:
Khi chạy file trên, nó sẽ trả về kết quả dưới đây:
http://thuthuat.taimienphi.vn/matlab-cach-nhap-du-lieu-32683n.aspx
Với các thông tin về trong MATLAB mà Zaidap.com vừa giới thiệu ở trên, hy vọng bạn sẽ biết thêm nhiều thông tin hữu ích mới của MATLB. Ngoài ra bạn đọc có thể tham khảo các bài viết khác trên Zaidap.com 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 nhé.