Fork me on GitHub

matlab学习小结

前言

maltab选修课上学到的一些基础知识…

冒号操作符:

关于冒号操作符的教程

  • x = i:j:k 创建一个固定间隔向量 x,x值从i到k,j为增量
  • A(:,n) 是矩阵 A 的第 n 列
  • A(m,:) 是矩阵 A 的第 m 行
  • A(:,:,p) 是三维数组 A 的第 p 页,即可以同时表示一个二维矩阵的多种改变后的状态
  • A(:) 将 A 中的所有元素重构成一个列向量。如果 A 已经是列向量,则此表达式没有任何作用
  • A(:,:) 将 A 中的所有元素重构成一个二维矩阵。如果 A 已经是矩阵或向量,则此表达式没有任何作用
  • A(j:k) 使用向量 j:k 对 A 进行索引,因此相当于向量 [A(j), A(j+1), …, A(k)]。使用时要注意下标是否越界
  • A(:,j:k) 包含第一个维度中的所有下标,但使用向量 j:k 对第二个维度进行索引。这样将返回包含列 [A(:,j), A(:,j+1), …, A(:,k)] 的矩阵,使用时要同样注意下标是否越界

矩阵

创建矩阵

  • ;分割 a = [1 2 3; 4 5 6; 7 8 10]
  • 使用ones,zeros,rand等函数

比如初始化空矩阵
a = zeros[5,3];

  • format long 显示更多小数位数

运算

  • a*b为矩阵运算
  • a.*b为数组运算
  • x‘:共轭转置

数组

  • []或:创建
  • 使用函数linspace创建 x= linspace(x1, x2, n)

  • 二维数组用;分割

在 MATLAB 的数据类型中,向量可视为一维数组,矩阵可视为二维数组,对于维数(Dimensions)超过2的数组均可视为「多维数组」


多项式曲线拟合

原理

用一个较简单的函数去逼近一个复杂的或未知的函数。常采用最小二乘原理,构造m次的拟合多项式

1
p(x)=a_{m}x^m + a_{m-1}x^{m-1}+...+a_{1}+a_{0}

使该多项式在各节点处的偏差

1
p(x_{i})-y_{i}

的平方和

1
\sum_{i=0}^n(p(x_{i})-y_{i})^2

达到最小

实现步骤

用polyfit函数求得最小二乘拟合多项式的系数,再用polyval函数按所得的多项式计算所给出的点上的函数近似值

polyfit

  • P = polyfit(x,y,n)

返回阶数为 n 的多项式 p(x) 的系数

  • [p,S] = polyfit(x,y,n)

S为结构体,用作 polyval 的输入来获取误差估计值

  • [p,S,mu] = polyfit(x,y,n)

mu,是一个二元素向量,包含中心化值和缩放值

polyval

  • y=polyval(P,x) 注:P = polyfit(x,y,n)

返回在 x 处计算的 n 次多项式的值

corrcoef相关系数

R = corrcoef(A);

  • 返回 A 的相关系数的矩阵,其中 A 的列表示随机变量,行表示观测值

R = corrcoef(A,B);

  • 返回两个随机变量 A 和 B 之间的系数。

把for循环中的数据动态存入到数组中

1
2
3
4
5
6
7
8
9
10
11
12
%第一种
for i=1:12
x(i)=i^2; %把每一个结果x(i)存到数组x中
end

%第二种
a0=[];
for i=1:12
x=i^2;
A=[a0,x]; %把结果x存到数组A中
a0=A;
end
-------------Page's overThanks for reading-------------

本文标题:matlab学习小结

本文作者:SherlockYang

发布时间:2018年11月06日 - 10:11

最后更新:2018年12月18日 - 17:12

原始链接:https://sherlock-y.com/2018/11/06/matlab学习小结/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

如果文章内容对你有帮助,就赏博主一瓶维他奶吧~