как найти близкое значение матрицы с помощью Matlab - PullRequest
0 голосов
/ 13 декабря 2018

предполагается, что у меня есть данные, содержит матрицу

a = [ 401.2 405.5 408.6 411.9 415.33 418.6 422.04 425.39; 0.011 0.022 0.033 0.044 0.055 0.066 0.077 0.088]
b = [ 400;
      410;
      420];

возможно ли создать матрицу C, которая выглядит следующим образом, где ближайшее значение B на A будет помещено в C.

c = [400 410 420; 0.011 0.44 0.77]

например, значение на B равно 400, а ближайшее значение A равно 401,2, затем в матрице C я поставлю 401,2 и 0,011.

спасибо

1 Ответ

0 голосов
/ 13 декабря 2018

Попробуй это.Ответ, который я получаю для c, не соответствует матрице, которую вы дали.

a = [ 401.2 405.5 408.6 411.9 415.33 418.6 422.04 425.39; 
      0.011 0.022 0.033 0.044 0.055 0.066 0.077 0.088]
b = [ 400;
      410;
      420];

c = zeros(2,length(b));

for i = 1:length(b)
   [min_error, ind] = min(abs(a(1,:) - b(i)));
   c(:,i) = [b(i); a(2,ind)];
end

Вот правильная матрица c:

c = [400.0000,  410.0000,  420.0000;
     0.0110,      0.0330,    0.0660];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...