• [MATLAB]:基础知识学习


    前言

    多少事,从来急;天地转,光阴迫。
    一万年太久,只争朝夕。 ——毛泽东《满江红·致郭沫若同志》


    一、MATLAB结构

    1、元胞数组

    % 4.元胞数组
    A = cell(1,6)	%a=b=666
    A{2} = eye(3)	%1开始,python 0开始,索引
    A{5} = magic(5)	%魔方:每行每列相加的和都相同
    B = A{5}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 执行结果:
      在这里插入图片描述

    2、结构体

    % 5.结构体
    books = struct('name',{{'Machine Learning','Data Mining'}},'price',[30,40])
    books.name  	% 属性
    books.name(1)   % 小括号取出来的是 cell
    books.name{1}   % 大括号取出来的是 字符串
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 执行结果
      在这里插入图片描述

    二、MATLAB的矩阵操作

    1、矩阵的定义与构造

    % 1、矩阵的定义与构造
    A = [1 2 3 4 5 6]
    B = 1:3:9
    C = repmat(B,3,1)
    D = ones(2,4)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 执行结果:
      在这里插入图片描述

    2、矩阵的四则运算

    A = [1 2 3 4; 5 6 7 8]
    B = [1 1 2 2; 2 2 1 1]
    C = A + B
    D = A - B
    E = A * B' %前者行数和后者列数相同才可进行相乘,如果不同,则不可进行相乘
    F = A.* B  %前面带点的表示对应项相乘
    G = A / B  % G * B = A   G * B * pinv(B) 相当于A乘以B的逆矩阵
    H = A./ B  % 前面带点的表示对应项相除
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 执行结果:
      在这里插入图片描述

    3、矩阵下标

    A = magic(5)
    B = A(2,3)
    C = A(3,:)
    D = A(:,4)
    [m,n] = find(A > 20)    %找大于20的序号值/矩阵
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 执行结果:
      在这里插入图片描述

    三、程序设计

    1、for循环结构:

    % for循环结构:
    % for 循环变量=初值 : 步长 : 终值(步长的默认值为1,可以省略)
    %     执行语句1
    %     ……
    %     执行语句n
    % end
    sum = 0;
    for n = 1:5
        sum = sum + n^2;
    end
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 执行结果:
      在这里插入图片描述

    2、for循环中嵌套for循环

    % for循环中可以嵌套for循环
    sum = 0;
    for i = 1:5;
        p = 1;
            for j = 1:i
            	p = p * j;
            end
        sum = sum + p;
    end 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 执行结果:
      在这里插入图片描述

    3、九九乘法表

    for i=1:9
        for j=1:9
            a(i,j) = i.* j;
        end
    end
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 执行结果:
      在这里插入图片描述

    4、求1到10的和

    % 110的和
    s = 0;
    n = 1;
    while n<=10
        s=s+n;
        n=n+1;
    end
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    5、求1~100的奇数和

    x=1;
    sum=0;
    while x<101
        sum = sum + x;
        x = x + 2;
    end
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    四、MATLAB基本绘图操作

    1、二维平面绘图

    %%
    % 1、二维平面绘图
    x=0:0.01:2*pi;
    y=sin(x);
    figure  			%建立一个幕布
    plot(x,y)
    title('y=sin(x)')   %取一个标题
    xlabel('x')         %x轴的标签
    ylabel('sin(x)')    %y轴的标签
    xlim([0 2*pi])      %x轴的值的范围
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 执行结果:
      在这里插入图片描述
    x=0:0.01:20;
    y1=200*exp(-0.05*x).*sin(x);
    y2=0.8*exp(-0.5*x).*sin(10*x);
    figure
    [AX,H1,H2] = plotyy(x,y1,x,y2,'plot');
    set(get(AX(1),'Ylabel'),'String','Slow Decay')
    set(get(AX(2),'Ylabel'),'String','Fast Decay')
    xlabel('Time(\musec)')
    title('Multiple Decay Rates')
    set(H1,'LineStyle','--')    %虚线
    set(H2,'LineStyle',':')     %点划线
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 执行结果:
      在这里插入图片描述

    2、三维立体绘图

    t=0:pi/50:10*pi;
    plot3(sin(t),cos(t),t)
    xlabel('sin(t)')
    ylabel('cos(t)')
    zlabel('t')
    
    %hold on      	%绘制其他线
    
    %hold off    	%不保存
    
    grid on      	%限制作用,在幕布中加了一些网格线
    axis square  	%限制作用
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 执行结果:
      在这里插入图片描述

    3、图形的保存和导出

    % 3、图形的保存和导出
    % (1) Edit    -> Copy Figure
    % (2) Toolbar -> Save
    % (3) print('-depse','-tiff','-r300','picturel')
    % (4) File -> Export Setup
    
    • 1
    • 2
    • 3
    • 4
    • 5

    4、双峰函数

    [x,y,z] = peaks(30);    %双峰函数
    mesh(x,y,z)
    grid
    
    • 1
    • 2
    • 3
    • 执行结果:
      在这里插入图片描述

    5、图像分析

    x=linspace(0,2*pi,60);
    
    subplot(2,2,1)
    plot(x,sin(x)-1);
    title('sin(x)-1');
    axis([0,2*pi,-2,0])
    
    subplot(2,1,2)
    plot(x,cos(x)+1);
    title('cos(x)+1');
    axis([0,2*pi,0,2])
    
    subplot(4,4,3)
    plot(x,tan(x));
    title('tan(x)');
    axis([0,2*pi,-40,40])
    
    subplot(4,4,8)
    plot(x,cot(x));
    title('cot(x)');
    axis([0,2*pi,-35,35])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 执行结果:
      在这里插入图片描述
  • 相关阅读:
    kubectl 资源管理命令-陈述式
    virtualbox无界面打开linux虚拟机的bat脚本,以及idea(代替Xshell)连接linux虚拟机的方法
    【面试系列】Java面试知识篇(七)
    Spread for ASP.NET 15.2 个性化需求中文版
    第四十一篇 指令中的VNode
    【NLP】python-docx库简介
    java毕业设计教务管理系统(附源码、数据库)
    【技术分享】基于编码注入的对抗性NLP攻击
    【ARM Coresight 系列文章19.1 -- Cortex-A720 PMU 详细介绍】
    接口测试用例设计方法方式和流程一文到底
  • 原文地址:https://blog.csdn.net/WandZ123/article/details/125906815