您的位置:首页 > 编程语言 > C语言/C++

Armadillo C++ linear algebra library 学习笔记(7)——统计相关函数

2015-07-17 17:12 555 查看

1、求矩阵行、列的最大值

A、通过调用”max(A, dim)”函数求矩阵A的行(dim=1)、列(dim=0)最大值。

B、示例

#include <iostream>
#include <armadillo>
using namespace arma;
int main()
{
//矩阵的各行各列最大值
mat A = randu<mat>(3, 3)*10;
A.print("矩阵A:\n");
colvec B = max(A,1);//1表示行,0表示列
B.print("矩阵A各行最大值:\n");
rowvec C = max(A,0);//1表示行,0表示列
C.print("矩阵A各列最大值:\n");

system("pause");
return 0;
}


C、结果



2、求矩阵行、列的最小值

A、通过调用”min(A, dim)”函数求矩阵A的行(dim=1)、列(dim=0)最小值。

B、示例

#include <iostream>
#include <armadillo>
using namespace arma;
int main()
{
//矩阵的各行各列最小值
mat A = randu<mat>(3, 3)*10;
A.print("矩阵A:\n");
colvec B = min(A,1);//1表示行,0表示列
B.print("矩阵A各行最小值:\n");
rowvec C = min(A,0);//1表示行,0表示列
C.print("矩阵A各列最小值:\n");

system("pause");
return 0;
}


C、结果



3、求矩阵行、列的乘积

A、通过调用”prod(A, dim)”函数求矩阵A的行(dim=1)、列(dim=0)的乘积。

B、示例

#include <iostream>
#include <armadillo>
using namespace arma;
int main()
{
//矩阵的各行各列的乘积
mat A = randu<mat>(3, 3)*10;
A.print("矩阵A:\n");
colvec B = prod(A,1);//1表示行,0表示列
B.print("矩阵A各行的乘积:\n");
rowvec C = prod(A,0);//1表示行,0表示列
C.print("矩阵A各列的乘积:\n");

system("pause");
return 0;
}


C、结果



4、求矩阵行、列的和

A、通过调用”sum(A, dim)”函数求矩阵A的行(dim=1)、列(dim=0)的和。

B、示例

#include <iostream>
#include <armadillo>
using namespace arma;
int main()
{
//矩阵的各行各列的和
mat A = randu<mat>(3, 3)*10;
A.print("矩阵A:\n");
colvec B = sum(A,1);//1表示行,0表示列
B.print("矩阵A各行的和:\n");
rowvec C = sum(A,0);//1表示行,0表示列
C.print("矩阵A各列的和:\n");

system("pause");
return 0;
}


C、结果



5、求矩阵行、列的均值

A、通过调用”mean(A, dim)”函数求矩阵A的行(dim=1)、列(dim=0)的均值。

B、示例

#include <iostream>
#include <armadillo>
using namespace arma;
int main()
{
//矩阵的各行各列的均值
mat A = randu<mat>(3, 3)*10;
A.print("矩阵A:\n");
colvec B = mean(A,1);//1表示行,0表示列
B.print("矩阵A各行的均值:\n");
rowvec C = mean(A,0);//1表示行,0表示列
C.print("矩阵A各列的均值:\n");

system("pause");
return 0;
}


C、结果



6、求矩阵行、列的中值

A、通过调用”median(A, dim)”函数求矩阵A的行(dim=1)、列(dim=0)的中值。

B、示例

#include <iostream>
#include <armadillo>
using namespace arma;
int main()
{
//矩阵的各行各列的中值
mat A = randu<mat>(3, 3)*10;
A.print("矩阵A:\n");
colvec B = median(A,1);//1表示行,0表示列
B.print("矩阵A各行的中值:\n");
rowvec C = median(A,0);//1表示行,0表示列
C.print("矩阵A各列的中值:\n");

system("pause");
return 0;
}


C、结果



7、求两个矩阵的相关系数矩阵

A、通过调用”C=cor(A,B)”函数求矩阵A与矩阵B的相关系数矩阵。矩阵A(B)的每一列为一个变量,每一行为一组观测值。矩阵C(i,j)表示矩阵A的第i个变量与矩阵B的第j个变量的相关系数。

B、示例

#include <iostream>
#include <armadillo>
using namespace arma;
int main()
{
//1、产生均匀分布随机矩阵A、B,大小为5x5,每个数的范围为:(0,10)
mat A = randu<mat>(5, 5)*10;
mat B = randu<mat>(5,5)*10;
//2、矩阵A与B的相关系数矩阵
mat C;
C = cor(A,B);//求矩阵A与B的相关系数矩阵。矩阵A(B)的每一列为一个变量,每一行为一组观测值。矩阵C(i,j)表示矩阵A的第i个变量与矩阵B的第j个变量的相关系数。
A.print("矩阵A:\n");
B.print("矩阵B:\n");
C.print("矩阵A与B的相关系数矩阵:\n");

system("pause");
return 0;
}


C、结果



8、求两个矩阵的协方差矩阵

A、通过调用”C=cov(A,B)”函数求矩阵A与矩阵B的协方差矩阵。矩阵A(B)的每一列为一个变量,每一行为一组观测值。矩阵C(i,j)表示矩阵A的第i个变量与矩阵B的第j个变量的协方差。

B、示例

#include <iostream>
#include <armadillo>
using namespace arma;
int main()
{
//1、产生均匀分布随机矩阵A、B,大小为5x5,每个数的范围为:(0,10)
mat A = randu<mat>(5, 5)*10;
mat B = randu<mat>(5,5)*10;
//2、矩阵A与B的协方差矩阵
mat C;
C = cov(A,B);//求矩阵A与B的协方差矩阵。矩阵A(B)的每一列为一个变量,每一行为一组观测值。矩阵C(i,j)表示矩阵A的第i个变量与矩阵B的第j个变量的协方差。
A.print("矩阵A:\n");
B.print("矩阵B:\n");
C.print("矩阵A与B的协方差矩阵:\n");

system("pause");
return 0;
}


C、结果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: