clc % 清除命令窗口的内容,对工作环境中的全部变量无任何影响
close % 关闭当前的Figure窗口
close all % 关闭所有的Figure窗口
clear % 清除工作空间的所有变量
clear all % 清除工作空间的所有变量,函数,和MEX文件
方程篇
等式方程求解
syms x; % 声明变量
eq = log10(x) == 1; % 列出等式方程
rst = vpasolve(eq, x);% 求取方程数值解
disp(rst)
函数篇
求微分
syms x
f(x) = 2*x;
f(x) = diff(f(x));
求积分:一个积分变量
syms y;
a = 1;
b = 10;
fun = exp(-y.^2) + log(y);
result = int(fun, a, b) % 求y=a~b的积分
求积分:一个积分变量,多个参数变量
syms x t;
a = 1;
fun = 2 * t * x;
result = int(fun, x, a, sin(t))% 求x=a~sint的积分
求积分:两个积分变量
syms x y;
fun = x.^2 + y.^2;
result = int((int(fun,x,sqrt(y),2)), y, 1, 4)% 先求x=根号y~2的积分,再求y=1~4的积分
常用函数:Gamma 函数
syms v_4 v_5% v_4 是自变量,v_5 是积分变量
Gamma(v_4) = int(v_5.^(v_4-1) * exp(-1 * v_5), v_5, 0, inf);
fprintf("自定义的 Gamma 函数:\n%.2f\n", Gamma(0.5));
fprintf("matlab 自带的 Gamma 函数:\n%.2f\n", gamma(0.5));
diff_Gamma(v_4) = diff(Gamma(v_4));
fprintf("用 matlab 自带的求导函数求自定义的 Gamma 函数的微分:\n%.2f\n", diff_Gamma(0.5));
diff_gamma(v_4) = diff(gamma(v_4));
fprintf("用 matlab 自带的求导函数求 matlab 自带的 Gamma 函数的微分:\n%.2f\n", diff_gamma(0.5));
Diff_Gamma(v_4) = int((v_5.^(v_4-1)) * log(v_5) * exp(-1 * v_5), v_5, 0, inf);
fprintf("用自定义的求导函数求自定义的 Gamma 函数的微分:\n%.2f\n", Diff_Gamma(0.5));
常用函数:自然对数函数
syms x
f(x) = log(x)
常用函数:高斯分布函数
mu = zeros(1,2);% 均值
sigma = [0.9 0.4; 0.4 0.3];% 方差
X = mvnrnd(mu,sigma,1000);% 生成 1000 个均值为 mu 方差为 sigma 的高斯数据
subplot(1,2,1);
plot(data1(:,1),data1(:,2),'r.');
y = mvnpdf(X, mu, sigma);% 根据正态分布密度函数获得每个高斯数据点对应的概率
subplot(1,2,2);
scatter3(X(:,1),X(:,2),y)
xlabel('X1')
ylabel('X2')
zlabel('Probability Density')
矩阵篇
获取矩阵二维
[D_x, N_x] = size(x);
获取矩阵所有维度中最大的一个
L = length(X)
生成数据:生成服从高斯分布的数据
生成数据:生成对角阵
a = eye(2,2)% 方阵
a = eye(3,2)% 非方阵,直观上是仿真按列数截取
生成数据:生成分块对角阵
A1 = ones(2,2);
A2 = 2*ones(3,2);
A3 = 3*ones(2,3);
B = blkdiag(A1,A2,A3)% 生成分块对角矩阵
生成数据:生成随机矩阵
% 生成一个由区间 (0,1) 内均匀分布的随机数组成的 5×5 矩阵。
r = rand(5)
% 生成一个由区间 (-5,5) 内均匀分布的随机数组成的 10×1 矩阵。
r = -5 + 10 * rand(10,1)
% 生成一个由区间 (10,50) 内均匀分布的随机整数组成的 1x5 矩阵。
r = randi([10 50],1,5)
% 生成一个实部和虚部位于区间 (0,1) 内的随机复数。
a = rand + 1i*rand
% 生成一个由区间 (0,1) 内均匀分布的随机数组成的 3×2×3 矩阵。
X = rand([3,2,3])
生成数据:生成 inf 矩阵
llh = -inf(1,10);
llh(1) = 1;
llh(2) = 0;
llh
生成数据:生成重复内容矩阵
B = repmat(A,m,n)
图像篇
创建带有两个堆叠子图的图窗
subplot(2,1,1);% 全图大小2x1,子图索引1
x = linspace(0,10);
y1 = sin(x);
plot(x,y1)
subplot(2,1,2); % 全图大小2x1,子图索引2
y2 = sin(5*x);
plot(x,y2)
生成三维图像
a = [1 2 3 4 5];
b = [5 4 3 2 1];
c = [6 7 8 9 0];
scatter3(a,b,c)
xlabel('a')
ylabel('b')
zlabel('c')