matlab知识汇总

1. 基本操作

运算

MATLAB 支持+ - * / 和^(次方运算)
*,^ 支持矩阵乘法
dot(A,B) 点积
cross(A,B) 叉积
.* ./ .^ 代表对每个位置上的操作
inv(A) 矩阵求逆

变量定义

不需要定义变量类型 默认double

A=10;(加分号表示不输出结果)
A=5i+3
A='hello world'
A=[1 3 5;6 4 8];
A=eye(5) 5*5单位矩阵
A=zeros(9,8) A=ones(9,8)
linspace(1,13,6) 生成行向量 1~13均分 6个点

常用函数和命令

1.sin() ,cos()
2.eps(即e) pi(π)
ans
Inf 无限大
i,j 用来表示复数

  1. whos 观看现在所有变量
  2. clear A 清除变量A
    clear 清除suoyou
    clc 清屏
  3. rem(a,b) a除以b的余数
  4. ...用来换行写代码

输出格式

format short 输出短小数
format long 输出长小数
format rat 输出分数

矩阵访问

A(8) 从第一列开始标号 第8个
A(3,2) 第3行第2个
MATLAB中每一种操作都可以用数组替代 相应的结果也变成数组
A([1,3,5]) 代表访问A(1) A(3) A(5)
A([1,3;1,3]) 结果用22数组显示
A([1,3],[1,3]) 枚举行位置 枚举列位置 2
2 矩阵
访问后直接赋值就可以修改

冒号运算符

代表一个行向量
A=1:15(默认间距为1)
A=1:2:15(2为step)

矩阵函数

max(A) 矩阵中每一列最大的
max(max(A)) 最大的数
同理有min
sum(A) 每一列求和
sum(sum(A)) 全部的和
mean(A) 每一列的平均数
size(A) 每一个维度的大小
使用;和[]来把各个元素并起来
length(A) 最大维度长度
prod(A) 将每一列乘起来

2.程序编写

  1. %% 将代码分成若干个部分分别执行
  2. 输入:input('') 参数为提示输入的字符串
    输出: disp();
  3. 选择结构:
x=input('input x ');y=input('input y ');
if x>y
    disp(x);
elseif x<y 
    disp(y);
else
    disp(y)
end
  1. 循环结构
x=1;
while x<=10
    x=x+1;
end
disp(x);

for ii=1:10
    a(ii)=ii;
end
disp(a);

4.% 用来添加注释
5.函数

function x=TT(a,b)
    if a>b 
        x=a
    else x=b
    end
end

x是返回值 TT是函数名和文件名
在多个结果[]起来的时候 不要求结构类型一致

储存为test.m
调用: test(a,b)
传入的参数可以是数组 建议使用./ .* 如:

function [v]=p(d1,h)
    if nargin==1
        h=1;
    end
    v=d1.*d1.*h
end

nargin 关键字 传入参数数量

快捷定义函数方法:

f=@(x)x.*x
x=0:0.1:2;
plot(x,f(x))

3. 变量进阶

  1. int32(),int64() 实现强制转换
  2. 字符串 字符的定义统一用''
  3. 结构体
p.a=1;
p.b='dsf';

p=struct('a',1,'b','dsf');
  1. cell: 多种结构拼在一起 并且附上了位置
A{1,1}=[1,2,3;4,5,6]
A{1,2}='dsf'

注意: A(1,2) 相当于指针 A{1,2} 相当于具体元素

4.绘图

1. 二维绘图

  1. plot(x,y) 在坐标轴上画出点对

    plot(y) 默认x取1~n

x=0:0.1:100; y=sin(x); plot(x,y)
  1. hold on/off 绘制在一个图
hold on
plot(sin(0:0.1:2*pi))
plot(cos(0:0.1:2*pi))
hold off
  1. 描点
plot(x,y,'.');
plot(x,y,'o');
plot(x,y,'X');

plot(x,y,'-');(线形)
plot(x,y,'b'); (颜色)

可组合
plot(x,y,'b.-',x,z,'bd-')

用不同的点形 线形 等来描绘

  1. 加上图例
legend('L1','L2')
  1. 加标注
title('function');
xlable('sdf');
ylable('wer');

text(0.25,2.5,str,'Interpreter','latex') 支持latex
annotation('arrow','X',[],'Y',[]) 画箭头
  1. 更改性质可以直接用属性更改 也可以用命令更改(set)

  2. 同时画多个图,加figure命令

>> x=-10:0.1:10;
>> y1=sin(x); y2=cos(x);
>> figure,plot(x,y1);
>> figure,plot(x,y2)
  1. subplot(x,y,z) 画x*y个图 当前是第z个
>> subplot(2,2,2);plot(x,y); axis square
>> subplot(2,2,1);plot(x,y); axis normal
  1. grid on/off 打开或者关闭网格

    axis normal/square 调整坐标轴的性质

  2. 对数图

>> x=logspace(-1,1,100);%生成100个0.1~10的数
>> y=x.*x;
>> subplot(2,2,1); semilogx(x,y);
>> subplot(2,2,2); semilogy(x,y);
>> subplot(2,2,3); loglog(x,y)
  1. 双坐标轴图
>> x=linspace(0,2*pi);
>> y1=sin(x); y2=cos(x);
>> plotyy(x,y1,x,y2)

句柄AX中有两个元素 如果可以这样加标注

[AX,y1,y2]=plotyy(x,y1,x,y2);
set(get(AX(2),'Ylable'),'String','wew');

三维绘图

  1. 空间曲线
>> x=cos(t); y=sin(t); z=t;
>> plot3(x,y,z)
>> grid on
  1. 空间曲面
    首先生成一个x,y的网格 才能够绘图
x=-3.5:0.2:3.5; y=x;
[X,Y]=meshgrid(x,y);
Z=x.*x-y.*y;
mesh(X,Y,Z);
surf(X,Y,Z);

5. 微积分

  1. 多项式微积分

存储按照系数来存储

p=[3,5,2,1];

3x3+5x2+2x+1

x=linspace(-1:1);
f=polyval(p,x);
plot(x,f);

求导:

q=polyder(q);

积分:

q=polyint(q,3) %第二个是初始值
  1. 其他:
    采用导数的定义 因此step必须非常小
    x=-2:0.005:2; y=x.^3;
    m=diff(y)./diff(x);
    plot(x,y,x(1:end-1),m);
    
    对于积分
    例: 024x3dx
    >> plot(x,y,x(1:end-1),m)
    >> h=0.05; x=0:h:2;
    >> mid=(x(1:end-1)+x(2:end))./2;
    >> y=4*mid.^3;
    >> s=sum(h*y)
    
    对于积分:
    021x32x5
y=@(x)1./(x.^3-2*x-5)
integral(y,0,2)

integral2 和integral3 可以二元积分/三元积分

6. 方程式求根

syms x;
y=sin(x)
sovle(y,x)
eq1=x+y-6
eq2=x-y+3
solve(eq1,eq2,x,y)
syms x; syms a; syms b;
y=a*x+b;
solve(y,x);
  1. 求导
syms x;
y=x*x;
diff(y);
  1. 带入
subs(y,x,2)%x=2带入到y(x)
  1. 积分
syms x;
y=x*x;
int(y);
posted @   __iostream  阅读(167)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示