Tôi có một mảng ô là cell(1, n)
được gọi là A
, với mỗi mục nhập ô có chứa ma trận mxn
. Vì vậy, trong thực tế, mảng ô của tôi chứa n
ma trận có kích thước mxn
.Nhân ma trận trong mảng ô Matlab?
Sau đó tôi có một mảng ô khác được gọi là B
, với n
pxm
ma trận được lưu trữ trong đó.
Những gì tôi cần làm là nhân hai cái với nhau, như sau: A[1] * B[1]
, A[2] * B[2]
, ..., A[n] * B[n]
. Sau đó tôi cần lưu trữ các kết quả dưới dạng các ma trận riêng lẻ và tổng hợp chúng.
Các ma trận là conformal cho phép nhân, nhưng vì mảng tế bào B
chứa hàng ít hơn mảng tế bào A
, khi tôi sử dụng cellfun(@times A, B, 'UniformOutput', true)
tôi nhận được một lỗi unequal matrices
.
Điều này dường như chỉ ra rằng cellfun
chỉ có thể nhân các ô riêng lẻ khi ma trận có số hàng và cột bằng nhau.
Bây giờ, tôi có thể thực hiện điều này bằng cách sử dụng các vòng lặp khác nhau hoặc bằng cách gọi cell2mat
và mat2cell
, v.v. Tôi cũng có thể lưu trữ mọi thứ dưới dạng mảng ma trận thay vì sử dụng các ô ... nhưng - tôi muốn sử dụng các ô.
Vì vậy - câu hỏi của tôi là: Có cách nào tốt để thực hiện việc này chỉ bằng cách sử dụng cellfun
? Tôi đã thử kết hợp các đầu vào đối số khác nhau - nhưng không có may mắn cho đến nay.
Đáng tiếc là tôi không thể xóa các cột phụ trong ma trận. Các ma trận trong các tế bào là không đồng đều tức là không có cùng kích thước nhưng phù hợp với phép nhân, cả hai mảng tế bào có lưu số nguyên tố chỉ là ma trận khác nhau và tế bào (@times ,,,,) không cho phép nhân địa điểm. Cảm ơn rất nhiều vì đã trả lời bất kể :) – James