Matlab

Matlab基础自学

感觉Matlab和python很像只不过多了一些运算函数而已
基础函数

https://ww2.mathworks.cn/help/matlab/ 查函数使用

  • 快速生成矩阵
    &直接法
    a =[1,2,3;4,5,6;7,8,9];
    分号分割行 逗号分割列
    &冒号循环生成一维矩阵
    b = 1:1:10 ;
    循环十次 部长为1 一维矩阵
    &使用函数生成
    linspace(开始,结束,元素个数),等差生成指定元素的一维矩阵,省略个数则生成100个
  c = linspace(0,10,5)
    &特殊矩阵
        e = eye(4)    四维单位矩阵
        z = zeros(1,4)  全零矩阵 1x4
        o = ones(4,1)   全1阵
        r = rand(4)   0~1分布随机矩阵
        rn  = randn(4)  randn 0均值Gaussian分布随机阵
矩阵运算
  • diag(a,1) 矩阵主对角线往上的地方生成对角阵(行向量)

往下生成可以用负号也可以tril

  • 点乘 a.*a 对应位置相乘
    *法是一行×一列再相加

  • 逆矩阵
    pinv(a)

  • 特征值 特征向量
    [v,D] = eig(a)
    输出v为特征向量 D为特征值对角阵

  • 行列式
    det(a)


  • rank(a)

  • 伴随
    compan(a)

  • 转置
    T_a = a’

  • 指定维数拼接 c1_a = cat(1,a,a) 垂直拼接
    c2_a = cat(2,a,a) 水平拼接

  • 矩阵变维
    rs_a = reshape(a,1,9)

  • 获取矩阵的行列数
    [row_a,col_a] = size(a)

  • 行列中最大的
    len_a = length(a)

  • 多维数组
    nul_1(:,:,1) = [1,2,3;2,3,4]
    nul_1(:,:,2) = [1,2,3;2,3,4] 两个矩阵存在nul_1中
    还有直接用cat连接成多维数组

其他常用
  • _2_----->类型转换 如num2str 数字转字符串
    dec2hex 十进制转换为十六进制

  • abs 取绝对值 取字符串的ascii码
    char转换为字符串

  • 输入函数 varargin
    输出函数 varargout

  • 脚本文件 .m 不需要传参

  • 函数文件.h 需要传参

快捷键(待补充)

ctrl i 智能调整缩进

Clear 清除全部变量
clear:clc; 清除命令行窗口

绘图

和python类似
直接plot()传入函数 不传入x默认横坐标以10为单位

x设定横坐标刻度

y1 = sin(x);
y2 = cos(x);
y=[y1',y2'];     %令y1 y2组成矩阵  然后plot(y)直接画出两条曲线

改变曲线样式参数 带引号 颜色:样式

plot(x,y1,'b:o');    %蓝色 点线 圆圈
 % b蓝 g绿 r红 c青 m紫 y黄 k黑 w白
 %-实线 :点线 --虚线 -.点画线
 %.实线 o圆圈 x叉 +十字 *星号 s方块 d钻石 v下三角 ^上三角 <左三角 >右三角 p五角星 h六角星

规定横坐标范围
axis([-1pi , 3pi , -1.5 , 1.5])

title(’’) 图像标题

legend(’’,’’,‘best’) str的顺序与绘图顺序一致 ‘best’指图例位置最佳化

图像保持 hold on 同时画多个图像时 hold off关闭

分割绘制
subplot(2,2,1); %分割成2x2画在第一个区域
plot(x,y1);
subplot(2,2,2); %分割成2x2画在第二个区域
plot(x,y2);

三维曲线
就 x y z同时存在呗
x = 0:0.1:2pi;
y = sin(x); z = cos(x);
plot3(x,y,z,'b-
’);

三维曲面

#三维曲线曲面绘制
  #三维曲线
  x = 0:0.1:2*pi;
  y = sin(x);z = cos(x);
  plot3(x,y,z,'b-*');
  #三维曲面
  	#三维网络
  		x = -5:0.1:5;   #规定x轴采样点,也规定了x轴的范围
  		y = -4:0.1:4;   #同上
  		[X,Y] = meshgrid(x,y);  #绘制xoy网面格点
  		Z = x.^2+Y.^2;
  		mesh(X,Y,Z)   #XY时meshgrid得到的网络点,Z时网络顶点
  	#三位表面图
  		x = -5:0.1:5;   #规定x轴采样点,也规定了x轴的范围
  		y = -4:0.1:4;   #同上
  		[X,Y] = meshgrid(x,y);  #绘制xoy网面格点
  		Z = x.^2+Y.^2;
  		surf(X,Y,Z)   #XY时meshgrid得到的网络点,Z时网络顶点     仅仅是换了个函数
多项式
  • 多项式
    p = [1,2,3,4]
    f1 = poly2str(p,‘x’) 输出多项式的字符串 未知数为x
    f2 = ploy2sym( p ) 生成多项式函数 f2 = x^3 + 2*x^2 + 3x + 4

  • 多项式求值
    y1 = polyval(p,x) x为输入的变量 可以是任何数字

  • 求根函数
    r = roots§;

  • 由根求系数 结果为系数矩阵
    p0 = poly( r );

  • 数据插值 插值法 在数据分析里讲过 是插值基函数的线性组合
    X = [-3 , -1 , 0 , 1 , 3]
    Y = [9 , 1 , 0 , 1 , 9]
    y2 = interp1(X , Y , 2) 插值预测x = 2时的函数值(数据太小可能不是很准)
    用spline方法(三次样条)插值预估x=2时的函数值 比普通插值精准一点
    y2 = interp1(X , Y , 2 , ‘spline’) ;

  • 多项式函数运算
    在这里插入图片描述

  • 极限与微积分在这里插入图片描述
    在这里插入图片描述

我是一名辣鸡研究生,心中只有学习。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值