matlab primer

维基百科是更好的选择,因为连不上你选择了百度百科,你是在主动降低自己以及读者的生活标准和智识标准

  • ones\zeros\eye向量的应用;函数size和length(返回矩阵中行和列中维数最大的那个)
  • 冒号表达式的应用 1:2:1000
  • matlab中数据是按照列来存储的。涉及到数据引用相关的问题N(2:4,2)的意义。
  • matlab支持矩阵的拼接:把矩阵以行的形式进行拼接:[K,K]的形式是以行的形式进行拼接,[K;K]是按照列的形式进行拼接。
  • L=(1:2:6;2 4 6)的结果。
  • magic魔方数组
  • m(3,2:end);
  • linspace的使用生成等差数列logspace使用生成等比数列,reshape重新变形。
  • 预定义的日期变量:date、clock、year、month、now、today有些不能单独用
  • 常见函数:三角函数sin(pi/6)注意是弧度值。sin里面也可以是一个矩阵,对每一个函数做三角函数运算。反三角函数acos\acot\asin..etc。
    直接用log是自然对数,log10 是以10为底的。abs绝对值。sqrt平方根。ceil天花板函数。floor地板函数,向着负无穷的方向。fix:朝着0进行元整
    round:朝着最近的整数去元整。round:朝着最近的整数去接近。mod取模。rem也是取模的意思,对负数除法有些不同。conv:多项式相乘函数。max:
    求最大值,min对应取最小值。实际是按照列来寻找的。给出的结果是一个行向量的形式。还有median取中位数,mean取得是平均值。sum是求和函数,
    prod是求积函数。sum(X,DIM)dim表示到底是按照行来计算还是按照列来计算,1代表行2代表列。求积函数和求和函数用法一样。conv对多项式进行展开
    例如conv([1 1],[1 1])表示对x+1的平方进行展开。[1 0 0 5 0 0 4][9 0 3 0 7 6].
  • 复数,用i来表示虚部。可以用i和j来表示。real取实部,imag是取虚部。abs是求复数的模。abs(1+2j),求辅角是angle,取共轭虚数是直接加撇。
  • cross是对矩阵做*,dot是对矩阵做点乘。compan(A)是求伴随矩阵,诶和数学中的伴随矩阵还是不是很一样的。inv是求逆矩阵,只有在行列式不等于0的时候可以取逆矩阵。
    det是求行列式的值。rank是求矩阵的秩,满秩矩阵才有逆矩阵。eig是求矩阵的特征值。trace是求矩阵的迹(主对角线相加求和。)
  • std(x) 算出x的标准偏差。 x可以是一行的matrix或者一个多行matrix矩阵
    如果只有一行,那么就是算一行的标准偏差,如果有多行,就是算每一列的标准偏差。
    std(x,a)也是x的标准偏差但是a可以=0或者1.如果是0和前面没有区别,如果是1就是最后除以n,而不是n-1. (你参考计算标准偏差的公式,一般都用除以n-1的公式。)
    std (x, a,b)这里a表示是要用n还是n-1,如果是a是0就是除以n-1,如果是1就是除以n。
    b这里是维数,比如说
    1 2 3 4
    4 5 6 1
    如果b 是1,就是按照行分,如果b是2就是按照列分
    如果是三维的矩阵,b=3就按照第三维来分数据
  • matlab 的pcolor是画图的,默认会少掉一行和一列,然后就相当于前两者x和y 是确认坐标的,第三者是给出颜色矩阵的。
    下面有一个小例子
`
KK= repmat([0.1:0.1:4],40,1);
x = [1:1:40];
y = [1:1:40];
pcolor(x,y,KK);
colorbar;
  • B = repmat(A,m,n)
    B = repmat(A,[m n])
    B = repmat(A,[m n p…])

这是一个处理大矩阵且内容有重复时使用,其功能是以A的内容堆叠在(MxN)的矩阵B中,B矩阵的大小由MxN及A矩阵的内容决定,如果A是一个3x4x5的矩阵,有B = repmat(A,2,3)则最后的矩阵是6x12x5

例如:

B=repmat( [1 2;3 4],2,3)
B =

1 2 1 2 1 2

3 4 3 4 3 4

1 2 1 2 1 2

3 4 3 4 3 4

其结果变为4X6。

  • eig Find eigenvalues and eigenvectors
    返回矩阵的特征值和特征向量;
    [V,D] = eig(A)
    D是特征值
    V特征向量
    例如a=[1 2 3;4 5 6;7 8 9];[V,D]=eig(a)
    结果:
    V =

-0.2320 -0.7858 0.4082
-0.5253 -0.0868 -0.8165
-0.8187 0.6123 0.4082

D =

16.1168 0 0
0 -1.1168 0
0 0 -0.0000
* sum:sum(x,2)表示矩阵x的横向相加,求每行的和,结果是列向量。 而缺省的sum(x)就是竖向相加,求每列的和,结果是行向量. 调用格式:a=diag(x);
* axis一般用来设置axes的样式,包括坐标轴范围,可读比例等
axis([xmin xmax ymin ymax])
axis([xmin xmax ymin ymax zmin zmax cmin cmax]) 坐标轴设置
v = axis
axis auto
axis manual
axis tight
axis fill
axis ij
axis xy
axis equal
axis image
axis square
axis vis3d
axis normal 坐标轴刻度比例等
axis off
axis on 显示与否
axis(axes_handles,…) 根据axes设置
[mode,visibility,direction] = axis(‘state’) 返回当前axes属性

  • diag:若x是m*n的矩阵,则a为x对角线元素组成的向量,且a的大小等于x较小的维数,即min(m,n)
    若x是1*m的向量,则a为m*m的矩阵,该矩阵的对角线元素为x。
  • flipud: 函数实现矩阵的上下翻转。
  • cumsum: 对一个矩阵进行累计求和,可以参考http://blog.sina.com.cn/s/blog_4eb23c8d01011rat.html

  • matlab的绘图教程:


%这是一个例子
x=0:0.01:2*pi;
y1=sin(x);
plot(x,y1,'-');
hold on

xlabel('x');
ylabel('u');
grid on
grid off %关闭网格,当然grid本身也可以做网格的切换

y2=cos(x);
plot(x,y2);
legend('xxxx','yuxuan');%用于插入对线的说明

PCA过程

1.特征中心化。即每一维的数据都减去该维的均值。这里的“维”指的就是一个特征(或属性),变换之后每一维的均值都变成了0。

2.计算B的协方差矩阵C:

  • View Code
    3.计算协方差矩阵C的特征值和特征向量。
    C=V*S*V-1
    S=
    4.2248414     0       0       0
    0          0.24224437  0        0
    0          0       0.078524387 0
    0          0       0        0.023681839

V=

0.36158919   0.65654382   -0.58100304   0.3172364
-0.082268924    0.72970845    0.596429220    -0.3240827
0.85657212  -0.17576972 0.  072535217    -0.47971643
0.35884438    -0.074704743    0.54904125    0.75113489

4.选取大的特征值对应的特征向量,得到新的数据集。
特征值是由大到小排列的,前两个特征值的和已经超过了所有特征值之和的97%。我们取前两个特征值对应的特征向量,得到一个4×2的矩阵M。令A’150×2=A150×4M4×2,这样我们就把150×4的数据A集映射成了150×2的数据集A’,特征由4个减到了2个。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值