Cách mở file mat trong excel

Lời khuyên điển hình của tôi là, nếu bạn đang thực hiện phân tích của mình trong Matlab, bạn có thể tập trung vào việc nhập dữ liệu và quên việc xuất dữ liệu. Nhưng trên thực tế, thật hữu ích khi biết cách thực hiện cả hai và các lệnh khá giống nhau

Thật không may, Matlab gần như không linh hoạt khi nhập/xuất dữ liệu như một ngôn ngữ như R, được thiết kế cho các nhà thống kê xử lý dữ liệu ở nhiều dạng. Trong bài học này, chúng ta sẽ tập trung vào một ví dụ đơn giản và tôi sẽ chỉ cho bạn các hàm phức tạp hơn ở phần cuối

nội dung

Chọn thuốc độc của bạn

Đây sẽ là một cuộc thảo luận phức tạp vì một vài lý do

  • Định dạng dữ liệu phổ biến nhất trên thế giới là của Microsoft. định dạng bảng tính xls. Thật không may, đây là một định dạng độc quyền, có nghĩa là, để mở. xls trong Matlab, bạn sẽ cần một bản sao của Excel và bạn sẽ cần chạy Windows. Xin lỗi, but they's break
  • Ngay cả khi bạn đang sử dụng bán mở của Microsoft. xlsx, được cho là mở trên máy Mac và Unix/Linux trong các điều kiện bên dưới, bạn có thể gặp sự cố. Dữ liệu của bạn cần được định dạng rất rõ ràng
  • Tốt thôi, bạn nói, Excel sẽ chuyển đổi dữ liệu của tôi thành csv (giá trị được phân tách bằng dấu phẩy), đẹp và di động và dễ mở trong trình soạn thảo văn bản để đọc. Và vâng, Matlab sẽ đọc csv. Nhưng chỉ những con số. Thật tệ nếu bạn có một cột chuỗi. Điều này sẽ ổn với các tệp Excel, nhưng kết quả sẽ hơi thú vị

Xin lỗi

Vì vậy, nói chung, bạn sẽ cần phải làm một trong những điều sau đây

  • Mã hóa lại mọi thứ trong bảng tính của bạn dưới dạng số, lưu dưới dạng csv và nhập
  • Sử dụng máy Windows có cài đặt Excel để nhập dữ liệu của bạn
  • Thành công trong việc tải Matlab để tải các tệp xls hoặc xlsx ở chế độ "cơ bản" với xlsread. (Tôi đã phải xóa dữ liệu rất nhiều để làm việc này. )

Do đó, tôi sẽ liệt kê một số tùy chọn bên dưới. Bạn sẽ phải chơi xung quanh để tìm ra cái nào tốt nhất cho mình

Bắt đầu

Trước tiên, bạn cần tải xuống dữ liệu (xls xlsx csv). Đây là những dữ liệu được trích xuất từ ​​Dự án Bồi thẩm đoàn Quận Multnomah, trong đó lập bảng các quyết định của bồi thẩm đoàn tại Quận Multnomah, Oregon, trong giai đoạn 1973-1976. Dữ liệu hiện được lưu trữ trong một tệp giá trị được phân tách bằng dấu phẩy (csv), đây là một định dạng dữ liệu khá điển hình và di động. (Excel sẽ đọc và lưu các tệp ở định dạng này và nó thực sự có thể đọc được, vì mỗi dòng chỉ là các mục nhập trong mỗi hàng, được phân tách bằng dấu phân cách. dấu phẩy, dấu cách, tab, v.v. )

Bây giờ di chuyển đến thư mục chứa tệp. Những người bạn đã cài đặt chương trình bảng tính có thể muốn xem dữ liệu

Kéo dữ liệu

Ở dạng đơn giản nhất, chúng tôi muốn sử dụng một trong các lệnh sau để lấy dữ liệu

[num,txt,raw] = xlsread('jury_data.xlsx');
num = csvread('jury_data.csv',1,0);

Bình luận

  • xlsread trả về ba đối số, dữ liệu số, num (trong một mảng), dữ liệu văn bản, txt (trong một mảng ô có cùng kích thước với bảng tính, với tất cả dữ liệu số đã bị xóa) và dữ liệu "thô" trong một mảng ô . Ở dạng thô, tùy thuộc vào việc bạn có khoảng trắng đi lạc hay không, Matlab có thể chuyển đổi số của bạn thành chuỗi bên trong mảng ô
  • csvread luôn trả về một ma trận số. Hai đối số bổ sung được cung cấp là hàng và cột để bắt đầu. Cả hai đều được lập chỉ mục từ 0, do đó các đối số 1 và 0 ở trên có nghĩa là bắt đầu ở hàng thứ hai, cột đầu tiên

Nếu chúng tôi đã sử dụng tùy chọn xlsread, chúng tôi có thể thực hiện một số thao tác làm sạch dữ liệu (nâng cao)

Tại sao chúng ta giải quyết vấn đề như thế này? . quá trình suy nghĩ của chúng ta nên như thế nào khi chúng ta tiếp cận một vấn đề như vậy?

  • Điều này không đơn giản. Tôi mất vài phút để tìm ra cách nó phải được thực hiện
  • Điều này thực sự khó thực hiện với vòng lặp, nhưng nếu bạn biết cách thực hiện với vòng lặp và đó là cách duy nhất bạn biết cách thực hiện, thì hãy sử dụng vòng lặp. Tìm kiếm một giải pháp hiệu quả trước khi bạn lãng phí nhiều thời gian vào việc trở nên thanh lịch
  • Kế hoạch cơ bản của chúng tôi là sao chép tất cả dữ liệu sang một mảng mới thành hai phần. Đầu tiên, chúng tôi sao chép mọi thứ đã là số, sau đó chúng tôi chuyển đổi phần còn lại thành số và sao chép chúng theo cách tương tự
  • Để làm điều này, chúng ta cần biết ô nào chứa số. Như bạn sẽ thấy, các hàm như ischar kiểm tra xem một biến có phải là một chuỗi hay không, không hoạt động tốt trên mảng ô. cellfun là một hàm áp dụng một hàm cho mọi phần tử của một mảng ô. Để làm điều đó, chúng ta cần cung cấp tên của một chức năng để sử dụng trên mỗi ô. Vì những lý do chúng tôi sẽ trình bày trong lớp trung cấp, bạn cần thực hiện điều đó bằng cách sử dụng @. Trả về từ cellfun sau đó là một ma trận có cùng kích thước với mảng ô, với 1 nếu ô tương ứng chứa một chuỗi và 0 nếu không
  • Tiếp theo, chúng tôi muốn sao chép tất cả các số. Chúng tôi sử dụng lập chỉ mục logic, với ~strtype là logic của chúng tôi (nó là 0 cho chuỗi và 1 cho số). Ở phía bên tay phải, chúng ta cần lấy các ô từ raw bằng cách sử dụng ~strtype, nhưng điều đó trả về các ô. Chúng ta có thể chuyển đổi chúng thành một mảng bằng hàm cell2mat
  • Cuối cùng, chúng ta cần chuyển đổi các ô chuỗi thành số và sao chép chúng qua. Ở đây, chúng ta có một hàm đẹp, được vector hóa, str2double để chuyển đổi tất cả các ô có giá trị chuỗi thành các số có độ chính xác kép (điều này sẽ không hoàn toàn phù hợp với số nguyên của bạn, vì nó sẽ thêm dấu thập phân, nhưng bạn có thể khắc phục điều đó sau . Một lần nữa, chúng tôi sử dụng lập chỉ mục logic với strtype để chọn các giá trị chuỗi ở dạng thô, chuyển đổi chúng thành số và gán các giá trị này cho tập hợp con chính xác của dữ liệu

Hai điều cần lấy đi từ điều này

  1. Còn rất nhiều Matlab để học, và thật không may, đôi khi nó cần thiết cho những thứ rất cơ bản. Nhưng không có nhiều khái niệm mới, chỉ có nhiều chức năng hơn để tìm hiểu
  2. Matlab có thể thực sự mạnh mẽ. Chỉ mất bốn dòng để giải quyết vấn đề làm sạch dữ liệu sẽ vô lý nếu thực hiện bằng cách chỉnh sửa thủ công

Ghi dữ liệu vào bảng tính

Rất may, việc ghi dữ liệu về cơ bản là quá trình ngược lại của việc đọc dữ liệu trong. Để biết thêm thông tin, hãy xem các tệp trợ giúp được liệt kê bên dưới. Quá trình này phải tự giải thích, với lưu ý rằng bạn cần lưu ý về các giới hạn của loại dữ liệu nào có thể được ghi ra bằng cách sử dụng mỗi lệnh

Tải và lưu dữ liệu Matlab

cái này dễ. Để tải dữ liệu, chỉ cần sử dụng lệnh tải

Bây giờ, nếu bạn đang ở trong một hàm, tải sẽ không đặt các biến trực tiếp vào không gian làm việc, vì nó có thể vô tình ghi đè lên một cái gì đó hiện có. Trong trường hợp đó (hoặc bất cứ lúc nào), bạn có thể nhận được đầu ra từ tải

Đối với việc lưu dữ liệu, bạn thực hiện điều đó với lưu, thao tác này lấy tên tệp đầu ra và danh sách các biến làm đối số

tôi có thể mở. Tệp MAT trong Excel?

2) Liên kết bảng tính có thể được sử dụng để nhập tệp MAT nhưng sẽ yêu cầu MATLAB trong nền . 3) Tùy chọn thứ ba là sử dụng API tệp MAT, đây là một bộ thư viện mà bạn có thể gọi API tệp MAT trong ứng dụng VBA để nhập tệp MAT trực tiếp vào môi trường Excel.

Mở chương trình nào. Tập tin MAT?

Mathworks MATLAB là phần mềm dùng để mở tệp MAT. Nó là một ứng dụng được sử dụng để phát triển thuật toán, trực quan hóa và phân tích dữ liệu cũng như tính toán các con số.

Làm cách nào để chuyển đổi tệp mat thành csv trong MATLAB?

csvwrite('TênTệp. csv', FileData. M);

Làm cách nào để tạo tệp mat trong MATLAB từ excel?

Liên kết trực tiếp tới câu trả lời này .
% lấy các giá trị trong Excel bằng cách sử dụng xlsread
[num,txt,raw] = xlsread(tên tệp,trang tính,xlRange);
% kết hợp dữ liệu như bạn muốn
AllData={txt;num};%như bạn muốn
%save trong mat file
save(matfileName,'AllData');%Trong tên matfile của bạn