Tôi đang làm việc trong một chương trình phân tích Hệ thống nguồn và tôi cần làm việc với ma trận thưa thớt.Thêm giá trị vào ma trận thưa thớt Scipy với chỉ mục và giá trị
Có một thói quen mà tôi điền vào một ma trận thưa thớt chỉ với các cuộc gọi sau đây:
self.A = bsr_matrix((val, (row,col)), shape=(nele, nbus), dtype=complex)
Như ma trận này sẽ không thay đổi theo thời gian. Tuy nhiên, một ma trận khác thay đổi theo thời gian và tôi cần phải cập nhật nó. Có cách nào mà có, ví dụ:
co = [ 2, 3, 6]
row = [ 5, 5, 5]
val = [ 0.1 + 0.1j, 0.1 - 0.2j, 0.1 - 0.4j]
tôi có thể thêm những để một ma trận thưa thớt khởi tạo trước đó? Làm thế nào sẽ là cách nhiều hơn để làm điều đó?
Cảm ơn bạn
Cảm ơn bạn. Tôi đọc trong tài liệu: _Bởi mặc định khi chuyển sang định dạng CSR hoặc CSC, các mục trùng lặp (i, j) sẽ được tổng hợp lại với nhau. Điều này tạo điều kiện xây dựng hiệu quả các ma trận phần tử hữu hạn và tương tự. (xem ví dụ) _ Điều đó càng ít giải quyết được vấn đề mà tôi có. Trong mã của tôi, có một số đối tượng đóng góp cho ma trận này và hai đối tượng có thể đóng góp cho cùng một mục nhập (i, j). Điều này có nghĩa là mỗi khi tôi muốn thêm đóng góp của một đối tượng, tôi phải xây dựng lại ma trận? – amalbe
hi ... vâng, bạn có thể sử dụng các đối tượng khác nhau để xây dựng ma trận chỉ bằng cách gán tham số 'col' và' row' cho 'coo_matrix'. Tôi không chắc chắn liệu 'SciPy' sẽ tạo hay không phải là bản sao nội bộ khi xây dựng ma trận thưa thớt –