Hướng dẫn matlab python numpy array - matlab python mảng numpy

Trong R2021A mới nhất, bạn có thể chuyển một Ndarray Python Numpy sang Double [] và nó sẽ chuyển đổi thành Ma trận MATLAB gốc, ngay cả khi gọi vào bảng điều khiển của mảng Numpy, nó sẽ đề xuất ở phía dưới "sử dụng chức năng kép để chuyển đổi thành mảng MATLAB" "

Xin chào,

Tôi chưa quen với MATLAB vì nó xuất hiện như thể Python không cho phép biểu diễn dữ liệu bốn chiều như được hiển thị ở đây: //fr.mathworks.com/help/matlab/visualize/visualizing-our-dimensional-data.html

Tôi có một mảng numpy [10,20,20] trên python [mỗi giá trị t [x, y, z] là giá trị nhiệt độ của một khối lượng.

[Về cơ bản, các lát dữ liệu trông như thế này]

Làm thế nào tôi có thể:

  • Xuất mảng này sang định dạng tương thích MATLAB
  • Nhập nó vào Matlab
  • Và trực quan hóa nó như hình dưới đây:

Cảm ơn bạn trước vì câu trả lời của bạn,

Thảo luận kỳ lạ ...

def nparray2matlab [x]:

plot[x]

trả về matlab.double [x.tolist []]

Đây là một giải pháp rất xấu xí.

temp = cellfun [@cell, cell [x.tolist], 'un', 0];When necessary, a numpy array can be created explicitly from a MATLAB array.For example, if you have a supported version of Python that is installed with the numpy library, you can do the following:

data = cell2mat [vertcat [temp {:}]];% MATLAB array

Một giải pháp sạch hơn một chút:% numpy array

data = typecast [uint8 [char [x.flat.base.data]], 'double'];

Sau đó, tất nhiên:

0.59430.80640.8064

0.61330.1372 0.1372

Sử dụng hàm chi tiết để xem các thuộc tính của đối tượng Python.

Sử dụng chức năng kép để chuyển đổi thành mảng MATLAB.

Xin lỗi, tôi không có thời gian để giải thích làm thế nào bạn biết rằng bạn cần phải làm những việc này. Tôi phải chạy!For example:

Jim% numpy array

Cuộc gọi cốt truyện bên dưới sẽ ném lỗi vì X không phải là loại MATLAB. Làm thế nào để bạn chuyển đổi một mảng python numpy thành một ma trận MATLAB thông thường?

Sau đó, tất nhiên:

0.59430.80640.8064

0.61330.13720.1372

Sử dụng hàm chi tiết để xem các thuộc tính của đối tượng Python.

Sử dụng chức năng kép để chuyển đổi thành mảng MATLAB.

>> x = 2*Double [y]% mảng matlab% MATLAB array

x =

1.18851.61291.6129

1.22660.27440.2744

Thêm câu trả lời [3]

data = double [py.array.array ['d', py.numpy.nditer [x]]];'d',py.numpy.nditer[x]]];

data = định hình lại [dữ liệu, [4 4]] ';

py.array.array rõ ràng là cách Matlab đề xuất nhận dữ liệu từ Python vào MATLAB [xem liên kết ở trên] //docs.python.org/2/l Library/array.html

Tuy nhiên, điều này đòi hỏi phải có một sự khác biệt mà mảng có thể được xây dựng, do đó cuộc gọi đến nditer []

Khi giá trị là một mảng, thì MATLAB có chức năng bằng văn bản để đúc theo loại MATLAB, trong trường hợp này thông qua gấp đôi.

Thảo luận kỳ lạ ...

def nparray2matlab [x]:npArray2Matlab[x]:

trả về matlab.double [x.tolist []]matlab.double[x.tolist[]]

Đây là một giải pháp rất xấu xí.

temp = cellfun [@cell, cell [x.tolist], 'un', 0];'un',0];

data = cell2mat [vertcat [temp {:}]];

Một giải pháp sạch hơn một chút:

data = typecast [uint8 [char [x.flat.base.data]], 'double'];'double'];

data = định hình lại [dữ liệu, [4 4]] ';

py.array.array rõ ràng là cách Matlab đề xuất nhận dữ liệu từ Python vào MATLAB [xem liên kết ở trên] //docs.python.org/2/l Library/array.html

Tuy nhiên, điều này đòi hỏi phải có một sự khác biệt mà mảng có thể được xây dựng, do đó cuộc gọi đến nditer []

Khi giá trị là một mảng, thì MATLAB có chức năng bằng văn bản để đúc theo loại MATLAB, trong trường hợp này thông qua gấp đôi.

Bài Viết Liên Quan

Chủ Đề