Я переписываю вопрос, который я задал несколько дней назад, потому что я напутал с объяснением того, что я хочу сделать.
У меня есть система координат U / V, которую я построил в Matlab, используя meshgrid
между значениями (-0,1,0.1). Ради простоты я преобразовал эту систему в систему координат тета-фи .
Это преобразование дает мне две новые матрицы, которые я назвал A, B, которые имеют такой вид.
A=. . . . . B= . . . . .
. . . . . . . . . .
. . 0 . . . . 0 0 0
. . . . . . . . . .
. . . . . . . . . .
Точки представляют значения в радианах, но важным моментом является то, что A имеет ноль в середине, а B имеет половину центрального ряда, равную 0, а другая половина - другое значение в радианах. В моем случае эти матрицы имеют размер 201x201.
Это означает, что графически у меня должна быть такая сетка:
![enter image description here](https://i.stack.imgur.com/sN0Yw.png)
и каждая точка принимает определенное значение в третьей матрице. Что мне нужно сделать, это собрать элемент этой третьей матрицы в определенной точке. Например, мне нужна точка (в УФ-системе) 0,005,0,005, например:
![enter image description here](https://i.stack.imgur.com/whFrv.png)
То, что я думал сделать, это использовать эту функцию
function [out_matrix] = find_value(in_matrix,ref_matrix_H,ref_matrix_V,ref)
ref_matrix= sqrt(ref_matrix_H.^2+ref_matrix_V.^2);
[value,ii] = min(abs(ref_matrix(:)-ref));
[row,col] = ind2sub(size(ref_matrix),ii);
out_matrix=in_matrix(row,col);
end
, где ref_matrix_H
и ref_matrix_V
- две матрицы A, B; Реф это один из двух пунктов, которые мне нужны. Я вычисляю это ref_matrix
как пересечение двух матриц и сравниваю каждый элемент этой новой матрицы с моим значением и, следовательно, беру координаты соответствующего элемента, но эта функция не извлекает правильные значения, которые я ожидаю.
Я думаю, что проблема в том, когда я вычисляю ref_matrix
, потому что в результате я получаю что-то вроде этого:
ref_matrix= 0.700 0.700 0.700 0.700 0.700
0.650 0.650 0.650 0.650 0.650
0.500 0.005 0.005 0.005 0.500
0.450 0.002 0.002 0.002 0.450
0.350 0.001 0.001 0.001 0.350
0.450 0.002 0.002 0.002 0.450
0.500 0.005 0.005 0.005 0.500
0.650 0.650 0.650 0.650 0.650
0.700 0.700 0.700 0.700 0.700
, где центральные элементы очень малы (что правильно), а другие увеличиваются по мере удаления от центра. Для правильной работы матрица все равно должна иметь другую форму
ref_matrix= -0.700 -0.700 0.700 0.700 0.700
-0.650 -0.650 0.650 0.650 0.650
-0.500 -0.005 0.005 0.005 0.500
-0.450 -0.002 0.002 0.002 0.450
-0.350 -0.001 0.001 0.001 0.350
-0.450 -0.002 0.002 0.002 0.450
-0.500 -0.005 0.005 0.005 0.500
-0.650 -0.650 0.650 0.650 0.650
-0.700 -0.700 0.700 0.700 0.700