Matlab 多列,选择最接近某个值的方式

Matlab 多列,选择最接近某个值的方式,matlab,variables,average,Matlab,Variables,Average,我试图分析从CSV文件中获取的数据集。数据读入matlab后,我只剩下一个数据变量。每个文件之间的列数和行数都会更改。有没有办法对每列求平均值,然后为平均值最接近某个值的列创建一个变量?然后直接选择中间列前后的列,并为它们创建变量,以及为平均值最低的列创建变量?目前,我正在手动选择列,并以这种方式为它们创建一个变量 例如: 我有这张数字表。(在本例中,为了便于平均,我在每列中使用了相同的数字 1 2 3 4 5 1 2

我试图分析从CSV文件中获取的数据集。数据读入matlab后,我只剩下一个数据变量。每个文件之间的列数和行数都会更改。有没有办法对每列求平均值,然后为平均值最接近某个值的列创建一个变量?然后直接选择中间列前后的列,并为它们创建变量,以及为平均值最低的列创建变量?目前,我正在手动选择列,并以这种方式为它们创建一个变量

例如:

我有这张数字表。(在本例中,为了便于平均,我在每列中使用了相同的数字

    1     2     3     4     5     

    1     2     3     4     5

    1     2     3     4     5

    1     2     3     4     5

    1     2     3     4     5
假设我想要平均值最接近3.2的列

该列将是第3列,其平均值为3。然后我希望代码选择前面的列(第2列)和后面的列(第4列)。以及平均值最低的列(第1列)

首先获得平均值(我假设数据矩阵在变量X中):

然后,要找到最小值,请使用“min”:

“val”保存最小值,“ind”是Xmns中对应的索引,即对应的列

要查找最接近特定值的列平均值,同样可以使用min:

[val,ind] = min(abs(Xmns-key_val));
现在“ind”保存了平均值最接近“key_val”的列索引。下一列是“ind+1”,上一列是“ind-1”-请确保您没有超出矩阵的末端(即ind可能已经是1或大小(X,2))

此外,给定列索引“ind”,要使用该列创建新变量,只需使用:

sc= X(:,ind);
如果要从X中删除该列:

X(:,ind) = [];

就这些。

非常感谢您的帮助!
sc= X(:,ind);
X(:,ind) = [];