cc=corr(x) 筛选出相关系数大于1的分量组成一个新的矩阵matlab实现
时间: 2024-03-19 10:44:04 浏览: 54
一种新的求取矩阵中间值的C算法
同样地,需要指出相关系数的取值范围是[-1,1],不存在大于1的相关系数。
如果要筛选相关系数绝对值大于等于0.8的分量,并组成一个新的矩阵,可以使用以下Matlab代码:
```matlab
% 生成一个10x10的随机矩阵
x = rand(10, 10);
% 计算相关系数矩阵
cc = corr(x);
% 找到相关系数绝对值大于等于0.8的分量
[row, col] = find(abs(cc) >= 0.8 & abs(cc) < 1);
% 构造新的矩阵
new_x = zeros(length(row), 2);
for i = 1:length(row)
if row(i) ~= col(i)
new_x(i, :) = [x(:, row(i))', x(:, col(i))'];
end
end
```
这里使用了`find`函数找到相关系数绝对值大于等于0.8的分量对应的行和列,然后用一个循环将这些分量对应的列取出来组成新的矩阵。需要注意的是,由于相关系数矩阵是对称的,因此只需要输出其中一个下三角即可。同时,如果某个相关系数绝对值大于等于0.8的分量对应的行和列相同,说明这个分量与自身的相关系数绝对值为1,因此需要排除这种情况。
阅读全文