powiedzmy, że mam dwie tablice strukturę z pasującymi dziedzinach, a także zawartości obu tablicach w danej dziedzinie są tego samego rozmiaru:Jak skutecznie zastosować liniową kombinację dwóch różnych tablic struktury?
A.field1 = [1,2,3]
A.field2 = 5
B.field1 = [4,5,6]
B.field2 = 9
Chciałbym wziąć liniowej kombinacji wszystkich danych w każdym polu. W naszym przykładzie będzie to oznaczać, że jeśli x i y są stałymi, chciałbym, aby uzyskać strukturę tablicy C takie, że
C.field1 = x*(A.field1) + y*(B.field1)
C.field2 = x*(A.field2) + y*(B.field2)
Moje pierwsze przypuszczenie było używać command structfun ale to tylko wydaje się pojedynczą strukturę array jako wejście, gdzie potrzebowałbym wejść A i B.
Tępym sposobem jest wyodrębnianie wszystkich danych i przechowywanie ich w oddzielnych zmiennych, weź liniową kombinację i umieść je z powrotem w tablicy struktur. Ale wydaje się, że musi być prostszy sposób (lub przynajmniej taki, który jest szybszy do wpisania, moje tablice nie są tak małe).
Jeśli szukasz rozwiązania, które pozwala na bardzo czyste i łatwe do wykonania kodu, chciałbym używać obiektów zamiast elemencie. Tutaj możesz nadpisać operacje 'plus' lub' times' własnymi metodami (kod oparty na jednej z odpowiedzi). Jeśli to zrobisz, możesz użyć składni takiej jak 'x * A + y * B'. To rozwiązanie będzie wolniejsze w czasie wykonywania. – Daniel