Các phương pháp khác nhau để xóa giá trị NaN khỏi ma trận trong MATLAB

Cac Phuong Phap Khac Nhau De Xoa Gia Tri Nan Khoi Ma Tran Trong Matlab



Các Không phải là một con số giá trị, thường được gọi là giá trị NaN được sử dụng để thể hiện dữ liệu bị thiếu hoặc không hợp lệ. Những giá trị này không phải là giá trị thực; do đó, bạn không thể sử dụng chúng trong các phép tính toán học của mình. Nếu kết quả hoặc đầu ra của bạn bao gồm giá trị NaN , bạn phải xóa chúng để đảm bảo kết quả của bạn chính xác và nhất quán. Lý do là giá trị NaN sẽ làm gián đoạn các hoạt động toán học của bạn và sẽ làm cho kết quả của bạn không chính xác. Ngoài ra, sự hiện diện của các giá trị này sẽ gây khó khăn cho việc so sánh kết quả của bạn với các kết quả khác.

Đọc hướng dẫn này nếu bạn muốn gỡ bỏ giá trị NaN từ một ma trận trong MATLAB.

Phương pháp loại bỏ giá trị NaN khỏi ma trận trong MATLAB

Bạn có thể xóa các giá trị NAN khỏi ma trận trong MATLAB:







Phương pháp 1: Xóa các giá trị NaN khỏi Ma trận trong MATLAB bằng hàm rmmissing()

Các rmmissing() là một chức năng có sẵn trong MATLAB mà bạn có thể sử dụng để loại bỏ dễ dàng giá trị NaN từ một ma trận trong mã MATLAB của bạn. Hàm này lấy một ma trận làm đầu vào và trả về một ma trận mới không bao gồm giá trị NaN .



cú pháp
Các rmmissing() hàm tuân theo một cú pháp đơn giản trong MATLAB như dưới đây:



mất tích ( m )

Ở đâu m là một ma trận có giá trị NaN .





Ví dụ
Ví dụ sau minh họa việc sử dụng rmmissing() có chức năng loại bỏ giá trị NaN từ một ma trận do người dùng chỉ định.

MỘT = [ 6 9 số 8 NaN NaN 9 2 7 ] ;
B = thiếu rm ( MỘT ) ;
phân tán ( b ) ;



Phương pháp 2: Xóa các giá trị NaN khỏi Ma trận trong MATLAB bằng hàm isnan()

Bạn cũng có thể sử dụng isnan() chức năng trong mã MATLAB của bạn để loại bỏ NaN các giá trị từ ma trận của bạn. Nó sử dụng cùng một đối số là một ma trận mà bạn muốn loại bỏ NaN các giá trị. Tuy nhiên, thay vì đưa ra các giá trị, hàm này cung cấp các giá trị logic, tức là bạn sẽ thấy logic 1 nếu có giá trị NaN trong ma trận trong khi logic 0 nếu không có giá trị NaN trong ma trận.

cú pháp

Cú pháp sử dụng isnan() trong MATLAB được đưa ra dưới đây:

là một ( m )

Đây, m là ma trận mà bạn muốn loại bỏ NaN các giá trị.

Ví dụ

Ví dụ đưa ra dưới đây tương tự như ví dụ đã được cung cấp cho rmmissing() chức năng. Tuy nhiên, thay vì rmmissing() , chúng tôi sẽ sử dụng isnan() chức năng loại bỏ giá trị NaN từ mã. Hơn nữa, chúng tôi cũng sẽ tạo một ma trận khác sẽ lưu trữ các giá trị của ma trận không bao gồm các giá trị NaN.

MỘT = [ 6 9 số 8 NaN NaN 9 2 7 ] ;
B = isnan ( MỘT ) ;
phân tán ( b )
C = Một ( ~ B )

Phần kết luận

Các giá trị NaN khiến bạn khó nhận được kết quả trong mã MATLAB của mình. Bạn có thể xóa chúng trong mã của mình bằng cách sử dụng rmmissing() hoặc isnan() chức năng. Việc sử dụng rmmissing() là đơn giản vì nó cho kết quả ngay lập tức. Tuy nhiên, đối với trường hợp của isnan() , bạn sẽ thấy các giá trị logic và để có được ma trận mong muốn, bạn phải lấy các phần tử từ ma trận không phải là NaN . Hướng dẫn trên đây đã cung cấp cả hai phương pháp này để loại bỏ giá trị NaN từ ma trận của MATLAB và bạn có thể chọn cái phù hợp hơn với mình.