1.矩阵
    (1)创建

    1. %(1)直接法
    2. a = [1,2,3;4,5,6;7,8,9];
    3. % 冒号一维矩阵 a = 开始:步长:结束,步长为1可省略
    4. b = 1:1:10; % 1,2,...10
    5. b = 1:10; %与上一个等价
    6. %(2)函数生成
    7. % linspace(开始,结束,元素个数),等差生成指定元素数的一维矩阵,省略个数则生成100
    8. c = linspace(0,10,5);
    9. %(3)特殊矩阵
    10. e = eye(4); % eye(维数)单位阵
    11. z = zeros(1,4); % zeros(维数)全零阵
    12. o = ones(4,1); % ones(维数)全1
    13. r = rand(4); % rand(维数)0~1分布随机阵
    14. rn = randn(4); % randn(维数)0均值Gaussian分布随机阵

    (2)矩阵运算

            diag_a = diag(a,1);  % diag(行向量,主对角线上方第k条斜线)用行向量生成对角阵
        tril_a = tril(a,1);  % tril(矩阵,主对角线上方第k条斜线)生成矩阵的下三角阵,triu上三角阵
        % 加、减、乘、乘方
            a*a
        % 点运算
            % a.*b , a./b , a.\b , a.^b  对应元素的*,/,\,^运算
            a.*a
        % 逆矩阵
            pinv(a)  % 伪逆矩阵,当a不是方阵,求广义逆矩阵;当a是可逆方阵,结果与逆矩阵相同
        % 特征值,特征向量
            [v,D] = eig(a);  % 输出v为特征向量,D为特征值对角阵
        % *行列式
            det(a)
        % *秩
            rank(a)
        % *伴随
            compan(b)
    

    (3)矩阵的修改

             %部分替换
            chg_a = a;
            chg_a(2,3) = 4;  % (行,列)元素替换
            chg_a(1,:) = [2,2,2];  % (行,:)替换行,为[]删除该行
            chg_a(:,1) = [];  % (:,列)替换列,为[]删除该列
        % 转置
            T_a = a';
        % 指定维数拼接
            c1_a = cat(1,a,a);  % 垂直拼接
            c2_a = cat(2,a,a);  % 水平拼接
        % *变维
            rs_a = reshape(a,1,9);  % 元素个数不变,矩阵变为m*n
    

    (4)矩阵获取

        % 矩阵的行列数
            [row_a, col_a] = size(a);  % [行数,列数]
        % 行列中最大的
            len_a = length(a);
    

    2.多维数组

           % 直接法
                mul_1(:,:,1) = [1,2,3;2,3,4];
                mul_1(:,:,2) = [3,4,5;4,5,6];
            % *扩展法
                mul_2 = [1,2,3;2,3,4];
                mul_2(:,:,2) = [3,4,5;4,5,6];  % 若不赋值第一页,第一页全为0
            % cat法
                mul_31 = [1,2,3;2,3,4];
                mul_32 = [3,4,5;4,5,6];
                mul_3 = cat(3,mul_31,mul_32);  % 把a1a2按照“3”维连接
    

    3.字符串

                    % 创建
            str0 = 'hello world';  % 单引号引起
            str1 = 'I''m a student';  % 字符串中单引号写两遍
            str3 = ['I''m' 'a' 'student'];  % 方括号链接多字符串
            str4 = strcat(str0, str1);  % strcat连接字符串函数
            str5 = strvcat(str0, str1);  % strvcat连接产生多行字符串
            str6 = double(str0);  % 取str0的ASCII值,也可用abs函数
            str7 = char(str6);  % 把ASCII转为字符串
            % 比较
                strcmp(str0, str1);  % 相等为1,不等为0
                strncmp(str0, str1, 3);  % 比较前3个是否相等(n)
                strcmpi(str0, str1);  % 忽略大小写比较(i)
                strncmpi(str0, str1, 3);  % 忽略大小写比较前3个是否相等
            % 查找替换
                strfind(str0, str1);  % 在str0找到str1的位置
                strmatch(str1, str0);  % 在str0字符串数组中找到str1开头的行数
                strtok(str0);  % 截取str0第一个分隔符(空格,tab,回车)前的部分
                strrep(str0, str1, str2);  % 在str0中用str2替换str1
            % 其他
                upper(str0);  % 转大写,lower转小写
                strjust(str0, 'right');  % 将str0右对齐,left左对齐,center中间对齐
                strtrim(str0);  % 删除str0开头结尾空格
                eval(str0);  % 将str0作为代码执行    
            %转换
                   % ___2___  -->  如num2str,将数字转字符串; dec2hex,将十进制转十六进制
                        str_b = num2str(b);
                % abs,double取ASCII码;char把ASCII转字符串
                        abs_str = abs('aAaA');
    

    4.多项式

    %创建
        p = [1, 2, 3, 4];  % 系数向量,按x降幂排列,最右边是常数
        f1 = poly2str(p, 'x');  % 生成好看的字符串 f1 = x^3 + 2 x^2 + 3 x + 4,不被认可的运算式
        f2 = poly2sym(p);  % 生成可用的符号函数 f2 = x^3 + 2*x^2 + 3*x + 4
    %求值
        x = 4;
        y1 = polyval(p, x);  % 代入求值;若x1为矩阵,则对每个值单独求值
    %求根
        r = roots(p); % p同上,由系数求根,结果为根植矩阵
        p0 = poly(r);  % 由根求系数,结果为系数矩阵
    
    %%
    %数据插值
    %一维插值
    %yi = interp1(X, Y, xi, 'method')
        X = [-3, -1, 0, 1, 3];
        Y = [9, 1, 0, 1, 9];  % XY为已知点横纵坐标向量
        y2 = interp1(X, Y, 2);  % 差值预估在x=2的y的值,x不能超过已知范围(此处x<3)
        y2m = interp1(X, Y, 2, 'spline');  % 用spline方法(三次样条)差值预估在x=2的y的值
    %二维插值
    %zi = interp1(X, Y, Z, xi, yi, 'method')
    
    %%
        X = [2, 3, 9, 15, 6, 7, 4];
        A = [1, 7, 2; 9, 5, 3; 8, 4 ,6];
        B = [1, 7, 3; 9, 5, 3; 8, 4 ,6];
    %数据统计
    %矩阵最大最小值
        y = max(X);  % 求矩阵X的最大值,min最小值
        [y, k] = max(X);  % 求最大值,k为该值的角标
        [y, k] = max(A, [], 2);  % A是矩阵,'2'时返回y每一行最大元素构成的列向量,k元素所在列;'1'时与上述相同
    %均值和中值
        y = mean(X);  % 均值
        y = median(X);  % 中值
        y = mean(A, 2);  % '2'时返回y每一行均值构成的列向量;'1'时与上述相同
        y = median(A, 2);  % '2'时返回y每一行中值构成的列向量;'1'时与上述相同
    %排序
        Y = sort(A, 1, 'ascend');  % sort(矩阵, dim, 'method')dim为1按列排序,2按行排序;ascend升序,descend降序
        [Y, I] = sort(A, 1, 'ascend');  % I保留了元素之前在A的位置
    %求和求积累加累乘
        y = sum(X);  % 求和
        y = prod(X);  % 求积
        y = cumsum(X);  % 累加
        y = cumprod(X);  % 累乘
    
    %%
    %*数值计算
    %最(极)值
    %多元函数在给定初值附近找最小值点
        x = fminsearch(fun, x0);
    %函数零点
        x = fzero(fun, x0);  % 在给定初值x0附近找零点
    

    5.符号函数

    %符号对象创建
    %sym函数
        p = sin(pi/3);
        P = sym(p, 'r');  % 用数值p创建符号常量P;'d'浮点数'f'有理分式的浮点数'e'有理数和误差'r'有理数
    %syms函数
        syms x;  % 声明符号变量
        f = 7*x^2 + 2*x+9;  % 创建符号函数
    %符号运算
    % 加减乘除外
    % '转置 ; ==相等 ; ~=不等
    % sin, cos, tan; asin, acos, atan 三角反三角
    % sinh, cosh, tanh; asinh, acosh, atanh 双曲反双曲
    % conj复数共轭;real复数实部;imag复数虚部;abs复数模;angle复数幅角
    % diag矩阵对角;triu矩阵上三角;tril矩阵下三角;inv逆矩阵;det行列式;rank秩;poly特征多项式;
    % |----expm矩阵指数函数;eig矩阵特征值和特征向量;svd奇异值分解;
    %符号对象精度转换
        digits;  % 显示当前用于计算的精度
        digits(16);  % 将计算精度改为16位,降低精度有时可以加快程序运算速度或减少空间占用
        a16 = vpa(sqrt(2));  % vpa括起的运算使sqrt(2)运算按照规定的精度执行
        a8 = vpa(sqrt(2), 8);  % 在vpa内控制精度,离开这一步精度恢复
    
    %%
    %符号多项式函数运算
    %*符号表达形式与相互转化
    %多项式展开整理
        g = expand(f);  % 展开
        h = collect(g);  % 整理(默认按x整理)
        h1 = collect(f, x);  % 按x整理(降幂排列)
    %因式分解展开质因数
        fac = factor(h);  % 因式分解
        factor(12);  % 对12分解质因数
    %符号多项式向量形式与计算
        syms a b c;
        n = [a, b, c];
        roots(n);  % 求符号多项式ax^2+bx+c的根
        n = [1, 2, 3];
        roots(n);  % 求符号多项式带入a=1, b=2, c=3的根
    %*反函数
        fi = finverse(f, x);  % 对f中的变量x求反函数
    
    %%
    %符号微积分
    %函数的极限和级数运算
    % 常量a,b
    %极限
        limit(f, x, 4);  % 求f(x), x->4
        limit(f, 4);  % 默认变量->4
        limit(f);  % 默认变量->0
        limit(f, x, 4, 'right');  % 求f(x), x->4+, 'left' x->4-
    %*基本级数运算
    %求和
        symsum(s, x, 3, 5);  % 计算表达式s变量x从3到5的级数和,或symsum(s, x, [a b])或symsum(s, x, [a;b])
        symsum(s, 3, 5);  % 计算s默认变量从3到5的级数和
        symsum(s);  % 计算s默认变量从0到n-1的级数和
    %一维泰勒展开
        taylor(f, x, 4);  % f在x=4处展开为五阶泰勒级数
        taylor(f, x);  % f在x=0处展开为五阶泰勒级数
        taylor(f);  % f在默认变量=0处展开为五阶泰勒级数
    %符号微分
    %单变量求导(单变量偏导)
        n = 1;  % 常量n
        fn = diff(f, x, n);  % f对x的n阶导
        f1 = diff(f, x);  % f对x的1阶导
        diff(f, n);  % f对默认变量的n阶导
        diff(f);  % 默认变量1阶导
    %多元偏导
        fxy = diff(f, x, y);  % 先求x偏导,再求y偏导
        fxyz = diff(f, x, y, z);  % 先求x偏导,再求y偏导,再求z偏导
    %符号积分
    %积分命令
        int(f, x, 1, 2);  % 函数f变量x在1~2区间定积分
        int(f, 1, 2);  % 函数f默认变量在ab区间定积分
        int(f, x);  % 函数f变量x不定积分
        int(f);  % 函数f默认变量不定积分
    
    
    %*符号方程求解
    %符号代数方程
    %一元方程
        eqn1 = a*x==b;
        S = solve(eqn1);  % 返回eqn符号解
    %多元方程组
        eqn21 = x-y==a;
        eqn22 = 2*x+y==b;
        [Sx, Sy] = solve(eqn21, eqn22, x, y);  % [Svar1,...SvarN]=solve(eqn1,...eqnM, var1,...varN),MN不一定相等
        [Sxn, Syn] = solve(eqn21, eqn22, x, y, 'ReturnCondition', true);  % 加上参数ReturnCondition可返回通解及解的条件
    % 其他参数(参数加上true生效)
    % IgnoreProperty,忽略变量定义时一些假设
    % IgnoreAnalyticConstraints,忽略分析限制;
    % MaxDegree,大于3解显性解;
    % PrincipleValue,仅主值
    % Real,仅实数解
    %非线性fsolve
        X = fsolve(fun, X0, optimset(option));  
    % fun函数.m文件名;X0求根初值;option选项如('Display','off')不显示中间结果等