Matlab速通知识点(半小时速通)

#跟着网上课程学习了matlab的基础用法,在这里给大家整合出来,形成知识点的形式,以便大家查阅或者学习,知识点全,有注解~

Matlab 复制代码
%%
a=[1,2,3;4,5,6;7,8,9];%矩阵写法

b=1:1:10;%开始:步长:结束

c=1:10;%遇上一个等价(1可以省略)

d=linspace(0,10,5);%起始元素,末尾元素,元素个数。生成等间距的元素个数

e=eye(4);%单位阵
z=zeros(1,4);%全零矩阵1*4
o=ones(4,1);%一矩阵4*1阶
r=rand(4);%0-1随机矩阵
rn=randn(4);%高斯随机分布矩阵


diag_a=diag(a,1);%diag(a矩阵行向量,主对角线上方第k条斜线)用行向量生成对角阵
tril_a=tril(a,1);%tril(矩阵,主对角线上方第k条斜线)生成矩阵的下三角阵,triu上三角阵


a*a;%矩阵乘法
%加减乘一样

%点运算
    %a.*b,a./b,a.^b对应元素的*,*/^运算
    a.*a;
 
%逆矩阵
pinv(a);%伪逆矩阵,当a不是方阵求他的广义逆矩阵;a是可逆方阵,结果与逆矩阵相同

%特征向量 特征值
    [v,d]=eig(a);%v为特征向量,d为特征值对角阵

%行列式
det(a);
   
%秩
rank(a);

% * 伴随
compan(b);

%%
%矩阵的修改
    cha_a=a;
    cha_a(2,3)=4;%(行,列)元素的替换
    cha_a(1,:)=[2,2,2];%(行,:)替换行,为[]即为删除行
    cha_a(1,:)=[];%删除行
 %转置
  T_a=a';
  %指定维数的拼接
  cl_a1=cat(1,a,a);%垂直拼接
  cl_a2=cat(2,a,a);%水平拼接

%%
%信息获取
    %矩阵的行列
    [row_a,col_a]=size(a);
    %行列中最大值
    len_a=length(a);
%%
%多维数组
    %创建
        %直接法
        %拓展法
        %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);

%%
%转换
    %___2___---->如num2str,将数字转化为字符串:dec2hex,将十进制转化为十六进制
    str_b=num2str(b);
%%
a=5;
x=[1,2];y=[3,4];
    %选择结构
    %if_elseif_else_end
    if a>0
        disp(x);
    elseif a==0
        disp(a);
    else
        disp(a-1);
    end

%switch-case-otherwise-end
 switch a
     case 0
         disp(a);
     case 1
         disp(a+1);
     otherwise
         disp('aaa');
 end

 %try-catch
 try
     z=x*y;
 catch
     z=x.*y;
 end
 disp(z);
 %%
 %循环结构
 %for 循环变量=初值:步长:终值---end
for i=0:1:10
    disp(i);
end
%while-end
while a>2
    disp(a);
    a=a-1;
end
%%函数调用
    [a,b]=circ(5);


%%
% 绘图
x=0:0.1:2*pi;
    y1=sin(x);
    y2=cos(x);
    plot(y1);
    y=[y1',y2'];
    plot(y);
plot(x,y1);
plot(x,y1,'b:o');%画蓝色的圆圈
%r红,g绿,b蓝,c青,m紫,k黑,w白,y黄
%-实线,:电线,--虚线,-.点画线
%.实点 o圆圈 x叉号 *星号 s方块 d钻石 v下三角 ^上三角 <左三角 >右三角 p五角星 h六角星

%坐标轴
plot(x,y1);
axis([-1*pi,3*pi,-1.5,1.5]);%规定横纵坐标的范围

%图形修饰
    %标签修饰
    title=('just soso');
    xlabel(title);%x轴标记
 %图例设置
    legend=('hahaha','location','best');%str顺序与绘图顺序一致,best指图例位置最佳化
 %图例保留
    plot(x,y1);
    hold on;
    plot(x,y2);
    hold off;
 %分割绘制
    subplot(2,2,1);%分割为2*2区域,在第一块区域绘图
    plot(x,y1);
    hold on;
    subplot(2,2,2);%分割为2*2区域在,第二块绘制图像
    plot(x,y2);
    hold off;
%%三维曲线曲面绘制
    %三维曲线
        x=0:0.1:2*pi;
        y=sin(x);z=cos(x);
        plot3(x,y,z,'b-*');
    %三维曲面
        x=-5:0.1:5;%确定x轴的范围
        y=-4:0.1:4;%确定y轴的范围
        [X,Y]=meshgrid(x,y);%得到x0y的网络面点
     
        z=X.^2+Y.^2;
        mesh(X,Y,z);%xy是meshgrid的网络点,z是网络顶点

        %三维表面图
        x=-5:0.1:5;%确定x轴的范围
        y=-4:0.1:4;%确定y轴的范围
        [X,Y]=meshgrid(x,y);
        z=X.^2+Y.^2;
        surf(X,Y,z);%与上面一个类似

%%
 %matlab内置函数的内容


 %多项式
    %创建
        p=[1,2,3,4];%系数向量,按x降幂排列,最右边是常数
        f1=poly2str(p,'x');%生成好看的字符串f1=x^3+2x^2+3x+4,不被认可的运算式
        f2=poly2sym(p);%生成可用的符号函数f1=x^3+2x^2+3x+4
    %求值
        x=4;
        y1=polyval(p,x);%直接将p转化为多项式进行带入求值
   
   %求根
        r=roots(p);%可以直接求复数根
        p0=poly(r);%由根求系数,转化为系数矩阵

%%
%数据插值0.0
    %一维插值
        %y1=interp1(x,y,xi,'method')
        X=[-3,-1,0,1,3];
        Y=[9,1,0,1,9];%x,y已知点横纵坐标向量
        y2=interp1(X,Y,2);
        y2m=interp1(X,Y,2,'spline');%用spline方法(三次样条)误差预估在x=2的y的值
     %二位插值
        %zi=interp1(x,y,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);%求矩阵的最大值,min为最小值
        [y,k]=max(X);%求最大值,k为该值的坐标
        [y,k]=max(A,[],2);%A为矩阵,'2'时返回y每一行最大元素构成的列向量

        %均值和中值
        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为升序排序,descent为降序
        [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附近寻找零点

 %%
 %符号对象创建
    %sym函数
        P=sin(pi/3);
        p=sym(p,'r');%用数值p创建符号变量P;
    %syms函数
    syms x;
    f=x^2+2*x+1;



    digits;%显示当前用于计算的精度
    digits(16);%改变精度,降低精度可以加快程序运算速度,减少空间占用
    a16=vpa(sqrt(2));%用vpa函数可以使用我们保存的精度
    a8=vpa(sqrt(2),8);%在vpa这一步控制精度,离开vpa后恢复精度

%%
%符号多项式函数运算
    %*符号表达形式与相互转化
        %多项式展开整理
            g=expand(f);%展开
            h=collect(g);%整理
            h1=collect(f,x);%按照x整理(降幂)
        %因式分解展开质因数
            fac=factor(h);
            factor(12);%对12分解质因数

        %符号多项式向量形式与计算
            syms a b c;
            n=[a,b,c];
            roots(n);%求符号多项式的根
            n=[1,2,3];
            roots(n);
         %反函数
            fi=finverse(f,x);

 %%
 % 符号微积分
    limit(f,x,4);%x趋近于4
    limit(f,4);%默认变量趋近于4
    limit(f);%趋近于零
    limit(f,x,4,'left');%左极限

%单变量求导
    n=1;
    fn=diff(f,x,n);%函数f对x变量的n阶导数
%多元偏导
    fxy=diff(f,x,y);%先对x偏导,再对y偏导;
    fxyz=diff(f,x,y,z);
 %符号积分
    int(f,x,1,2);%对函数f从1-2积分
    int(f,x);%对x不定积分

%%
    %符号方程求解
        %一元方程
            eqn1=a*x==b;
            S=solve(eqn1);
         %多元方程
            eqn2 =x-y==a;
            eqn3=2*x+y==b;
            [sx,sy]=solve(eqn2,eqn3,x,y);
            [sxn,syn]=solve(eqn2,eqn3,x,y,'ReturnCondition',true);


        %非线性fsolve
        X=fsolve(fun,x0,optimset(option));%fun函数m文件名,x0求根初值,option选项
        
相关推荐
只待花开1 小时前
QT5.12.9 通过MinGW64 / MinGW32 cmake编译Opencv4.5.1
开发语言·qt
我写代码菜如坤1 小时前
C#中Stopwatch的使用
开发语言·c#
wjs20242 小时前
SQLite Glob 子句
开发语言
MarkHD5 小时前
javascript 常见设计模式
开发语言·javascript·设计模式
海盗猫鸥6 小时前
C++入门基础篇(1)
开发语言·c++·学习
专注成就自我6 小时前
java使用easypoi模版导出word详细步骤
java·开发语言·word
多多*6 小时前
SpringBoot 启动流程六
java·开发语言·spring boot·后端·spring
让你三行代码QAQ6 小时前
SpringSecurity初始化过程
java·开发语言
Mr_Richard7 小时前
Java动态代理的实现方式
java·开发语言
码农超哥同学8 小时前
Python面试题:请解释 `lambda` 函数是什么,并举一个例子
开发语言·python·面试·编程