如何使用matlab计算矩阵的列之间的Pearson correlation

作者&投稿:盈高 (若有异议请与网页底部的电邮联系)
如何使用matlab计算矩阵的列之间的Pearson correlation~

皮尔逊相关系数的Matlab实现:
function coeff = myPearson(X , Y)
% 本函数实现了皮尔逊相关系数的计算操作
%
% 输入:
% X:输入的数值序列
% Y:输入的数值序列
%
% 输出:
% coeff:两个输入数值序列X,Y的相关系数
%


if length(X) ~= length(Y)
error('两个数值数列的维数不相等');
return;
end

fenzi = sum(X .* Y) - (sum(X) * sum(Y)) / length(X);
fenmu = sqrt((sum(X .^2) - sum(X)^2 / length(X)) * (sum(Y .^2) - sum(Y)^2 / length(X)));
coeff = fenzi / fenmu;

end %函数myPearson结束
也可以使用Matlab中已有的函数计算皮尔逊相关系数:
coeff = corr(X , Y);

来源:http://zh.wikipedia.org/zh-cn/相关

解决方案1:
直接用缉鼎光刮叱钙癸水含惊ifft();例如信号x
y=fft(x);%对信号傅里叶变换到频域
z=ifft(y);%对信号y傅里叶反变换到时域,

解决方案2:
工具箱啊。IFFT()函数

1、相关系数就用命令corrcoef

min(min(corrcoef(x1, x2))) 就是x1,x2之间的相关系数。

比如

t = (1:0.1:100)';
w = 2*pi;

x1=sin(w*t)+randn(size(t));
x2=cos(w*t)+randn(size(t));
x3=sin(w*t)+randn(size(t));

x1_x2 = min(min(corrcoef(x1, x2)))
x1_x3 = min(min(corrcoef(x1, x3)))

2、用corrcoef函数

设a1,b1,c1,d1 ,a2,b2,c2,d2 分别为f(x)和g(x)的系数

x=[a1,b1,c1,d1];
y=[a2,b2,c2,d2];

z=corrcoef(x,y)


在matlab中,如何设置当前目录和搜索路径,在当前目录上的文件和在搜索...
方法一:在 MATLAB 命令窗口中输入 editpath 或 pathtool 命令或通过 【File 】\/| 【SetPath 】菜单,进入“设置搜索路径”对话框,通过该对话框编辑搜索路径。方法二:在命令窗口执行 “path(path,„D:\\ Study ‟)”,然后通过 “设置搜索路径 ”对话查看 “D:\\ Study”是否在搜索...

matlab有什么用
它可以用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。我曾经用它做运筹学方面的多维线性规划,只需编好程序,把相关数据输进去,结果就出来了,效率超高的。MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、...

这个matlab程序怎么编?(设计低通滤波器)
1.对同一个信号,不同点数FFT观察到的频谱图有何区别? 2.序列加长后FFT与原序列FFT的关系是什么,试推导其中一种关系。 3.用傅立叶级数理论,试说明正弦信号频谱和方波信号频谱之间的关系。 3 IIR滤波器设计实验 3.1 实验目的 1.通过实验加深对IIR滤波器基本原理的理解。 2.学习编写IIR滤波器的MATLAB仿真程序。

大一新生如何学习matlab
--- 建议你比较系统地学习matlab所以推荐一本叫精通matlab 7.0的书 主编是王正林 《matlab在数学方面的应用》作者:何正风 出版社:清华大学出版社 主要讲高数实验和建模等方面的应用方法和使用技巧,实用性比较高,一般大学里面都有这本教材。这本是我上建模选修课用的,感觉确实不错。《精通matlab...

我需要用matlab做光伏预测,了解到可以利用神经网络算法编程,但不知从...
你要做光伏预测,其实所有的预测的原理都差不多,可以参考别人的案例。建议你看看matlab的书,学习下基本知识,推荐《matlab神经网络30个案例》,上面有很多预测案例。附件是一个基本的用BP神经网络预测电力负荷的例子。BP(Back Propagation)神经网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是...

如何将MATLAB程序编译成独立可执行的程序
在确定安装好Matlab Compiler后,还需要对Compiler进行适当的配置,方法是在Matlab命令窗口输入:Mbuild –setup 然 后根据提示执行相应的操作,使用者可根据自己计算机中现有编译器的情况选择合适的编译器,如VC++ 6.0、VC++7.0、Bland C的编译器等,目前Matlab好象还不支持VC++8.0(我计算机安装的就是...

MATLAB在逐渐被Python淘汰吗?
2)matlab是商用软件,lisense费用n贵,并且mathworks公司在软件中留了不少后门,上报使用者信息,正规公司用正版用的心痛,用盗版又用得心惊肉跳,那既然有免费的python,何乐而不为呢,哪怕功能弱一点,但是要相信社区的力量是无穷的,很快就能补上来。 Matlab和python完全不在一个水平线上的产品,matlab是一个面向算法本身...

matlab已知自变量的取值范围求最大值
如何用matlab在已知自变量的取值范围下求最大值?题主的问题可以解决:1、根据函数表达式为f=QR(1-D),自定义其目标函数,fmincon_fun(x),即 f=-Q*R*(1-D); 这里负号表示最大值 2、根据约束条件,自定义其约束函数,fmincon_con(x),即 g(1)=Q-10; %Q>10;g(2)=R-0.04; %R>0....

...MATLAB,pspice,希望高手指点着几款软件如何用?
2. proteus是仿真单片机及其外围器件的有效工具,可以做原理图布图、代码调试到单片机与外围电路协同仿真,是将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台;3. Simulink不是仿真软件,它只是MATLAB软件下面的一个子仿真模块,主要能仿真电力系统,电机和自动控制等方面的模型;4. MATLAB是...

几何中的复数角度有何含义?怎样用matlab把一个复数角度转变成弧度...
复数z=x+i*y,其角度的正切tan(a)=y\/x,在matlab中,则a=angle(z),结果就是弧度

西林区18159389641: MATLAB求助:如何求一个矩阵的列数 -
长孙哈若迈: 设A为矩阵,用size(A,i)求矩阵的行数和列数.其中i=1或2.行数用1,列数用2

西林区18159389641: 在matlab中怎么求矩阵的行列式,逆矩阵,特征根,特征向量 -
长孙哈若迈:[答案] 行列式 det(A) 逆矩阵 inv(A) 或 A^-1 特征根,特征向量 [d,v] = eig(A) d 中对角线元素为特征值 v 中列向量为对应的特征向量

西林区18159389641: 在matlab中怎样取矩阵的列向量呀 -
长孙哈若迈: 直接对矩阵进行取列操作,如: A = [ 2, 3, 1; 3, 0, 7; 2, 9, 7; 1, 3, 2]; a = A(:, 1) % 将矩阵A的第一列全部取出来,并赋值给变量a,此时变量就是一个列向量,其维数与矩阵A的行数一致. 执行完以上程序段后,a = [2, 3, 2, 1];

西林区18159389641: matlab 如何得到矩阵行列数 -
长孙哈若迈: x=[矩阵数据]; [m,n]=size(x); m %输出x有多少行 n %输出x有多少列

西林区18159389641: 如何用matlab算行列式的值 -
长孙哈若迈: 输入矩阵 输入det(A),回车,得到结果.

西林区18159389641: 如何用matlab通过矩阵阶梯化的方式求矩阵的行列式 -
长孙哈若迈: 参考代码: %% 准备 A=[10 -7 0;-3 2 6;5 -1 5]; b=[7 4 6]'; n=length(A); L=eye(n);%% 消元 for k=1:n-1for p=k+1:nif A(k,k)~=0m=A(p,k)/A(k,k);A(p,k:n)=A(p,k:n)-m*A(k,k:n);b(p)=b(p)-m*b(k);L(p,k)=m;endend end U=A L c=cumsum(diag(U)) c(end)

西林区18159389641: matlab 如何求矩阵每一维的长度? -
长孙哈若迈:[答案] size(A,2); 这个函数就可以求解矩阵A的列数,就是你说的每一维的长度.

西林区18159389641: matlab 怎样求某个元素在其对应矩阵的行列号? -
长孙哈若迈: 输入A=[1 2 3;4 5 6;7 8 9] 以后再输入A(2,2)就行了 A(i,j)表示第i行第j列的元素 例2-9 建立矩阵A,然后找出大于4的元素的位置. (1) 建立矩阵A.A=[4,-65,-54,0,6;56,0,67,-45,0] (2) 找出大于4的元素的位置.find(A>4) 输出结果: B = 269 原来...

西林区18159389641: 如何用MATLAB实现这个简单的矩阵计算怎么让它每一列的每一个元素都减去该列的第一个元素,然后再对每个元素求和.比如矩阵为b=[1 2 3 2 3 4 3 5 6]结果... -
长孙哈若迈:[答案] 在MATLAB窗口直接输入: b=[1 2 3;2 3 4;3 5 6] a=b(1,:); for i=1:3 b(i,:)=b(i,:)-a; end sum(b)

西林区18159389641: 如何用MATLAB来把矩阵的每一列抽出来,来组成一个一列的矩阵哦 -
长孙哈若迈: 使用sum指令就可以了,如果A是一个向量,sum(A)返回所有元素的总和.如果A是一个矩阵,sum(A)把A的列作为向量,返回一个包含每一列所有元素的总和的行向量.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网