Мне необходимо умножить два массива разных размеров.
У меня есть два набора данных, которые можно представить как таблицы точек, описывающие алгебраическое уравнение.Другими словами, у меня есть два массива, соответствующих значениям x и y для одного набора данных, и два массива, соответствующих значениям x и y для другого набора данных.Два набора массивов имеют разные формы, поэтому я не могу просто умножить их вместе.
Подобно умножению двух алгебраических уравнений вместе, мне нужно умножить два значения y вместе, когда они имеют одинаковый x-значение.
Каждый из этих массивов импортируется из файлов .dat.
Вот четыре отдельных способа, которыми я пытался это сделать.
###interpolation is an array of size 1300 defined previously
###x_vals and y_vals have same dimension that is not 1300
for i in x_vals:
for j in y_vals:
k = j*interpolation
print(k)
################################ attempt2 ################
# x is an array of x-values associated with interpolation
for i in x:
for j in x_vals:
if i==j:
k = interpolation*y_vals
print(k)
############################### attempt3 ################
for i in x_vals:
if x==i:
k = interpolation*y_vals
print(k)
############################ attempt4 ################
y_vals.resize(interpolation.shape)
k = interpolation*y_vals
print(k)
Первая попытка не выдает сообщений об ошибках, но результат неверен.
секунда выдала следующую ошибку: UnboundLocalError: local variable 'k' referenced before assignment
третий далследующее: ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
четвертый выдал следующее сообщение об ошибке: ValueError: resize only works on single-segment arrays