如何使用Matlab查找矩阵的接近值

时间:2018-12-13 00:55:46

标签: matlab matrix

假设我的数据包含一个矩阵

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 :(得分:0)

尝试一下。我为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];