大家好,欢迎来到IT知识分享网。
abs– 绝对值。y = abs(-5); % 返回 5sqrt– 平方根。y = sqrt(16); % 返回 4sum– 求和。y = sum([1, 2, 3, 4]); % 返回 10mean– 平均值。y = mean([1, 2, 3, 4]); % 返回 2.5median– 中位数。y = median([1, 3, 2, 4]); % 返回 2.5max– 最大值。y = max([1, 3, 2, 4]); % 返回 4min– 最小值。y = min([1, 3, 2, 4]); % 返回 1std– 标准差。y = std([1, 2, 3, 4]); % 返回 1.290var– 方差。y = var([1, 2, 3, 4]); % 返回 1.6667length– 长度。y = length([1, 2, 3, 4]); % 返回 4size– 尺寸。y = size([1, 2; 3, 4]); % 返回 [2, 2]zeros– 生成全0数组。y = zeros(2, 3); % 生成2x3的0矩阵ones– 生成全1数组。y = ones(2, 3); % 生成2x3的1矩阵eye– 单位矩阵。y = eye(3); % 生成3x3的单位矩阵linspace– 线性间隔向量。y = linspace(0, 10, 5); % 生成从0到10的5个等间距数值logspace– 对数间隔向量。y = logspace(1, 3, 3); % 生成10^1到10^3的3个对数间距数值meshgrid– 生成网格坐标矩阵。[X, Y] = meshgrid(1:3, 1:3);plot– 绘图。plot(1:10, (1:10).^2); % 绘制y = x^2图形subplot– 子图。subplot(1, 2, 1); plot(1:10); subplot(1, 2, 2); plot((1:10).^2);surf– 3D表面图。[X, Y] = meshgrid(-2:0.1:2, -2:0.1:2); Z = X.^2 + Y.^2; surf(X, Y, Z);imshow– 显示图像。imshow(ones(10, 10));imread– 读取图像文件。img = imread('image.jpg');imwrite– 写图像文件。imwrite(img, 'new_image.jpg');rand– 生成随机数。y = rand(3, 3); % 生成3x3的随机矩阵randn– 生成正态分布的随机数。y = randn(3, 3); % 生成3x3的正态分布随机矩阵find– 查找非零元素。[row, col] = find([1, 0; 0, 1]); % 返回非零元素的位置sin– 正弦函数。y = sin(pi/2); % 返回1cos– 余弦函数。y = cos(pi); % 返回-1tan– 正切函数。y = tan(pi/4); % 返回1exp– 指数函数。y = exp(1); % 返回2.71828log– 自然对数。y = log(exp(1)); % 返回1log10– 以10为底的对数。y = log10(100); % 返回2diff– 差分。y = diff([1, 2, 4, 7]); % 返回[1, 2, 3]gradient– 梯度。y = gradient([1, 2, 4, 7]); % 返回梯度向量det– 行列式。y = det([1, 2; 3, 4]); % 返回-2inv– 矩阵求逆。Y = inv([1, 2; 3, 4]); % 返回逆矩阵eig– 特征值和特征向量。[V, D] = eig([1, 2; 3, 4]); % 返回特征值矩阵D和特征向量矩阵Vsvd– 奇异值分解。[U, S, V] = svd([1, 2; 3, 4]); % 返回奇异值分解fft– 快速傅里叶变换。y = fft([1, 2, 3, 4]); % 返回傅里叶变换结果ifft– 逆快速傅里叶变换。y = ifft([1, 2, 3, 4]); % 返回逆傅里叶变换结果filter– 对数据应用数字滤波器。b = [1, -1]; % 滤波器系数 a = 1; % 滤波器分母 y = filter(b, a, [1, 2, 3, 4, 5]); % 返回滤波结果conv– 信号卷积。x = [1, 2, 3]; h = [1, -1]; y = conv(x, h); % 返回卷积结果deconv– 信号反卷积。[q, r] = deconv([1, 2, 2, 1], [1, 1]); % 返回商和余数fftshift– 移动零频率分量到频谱中心。Y = fftshift(fft([1, 2, 3, 4])); % 对FFT结果进行频谱重排ifftshift– 反向移动频谱中心。Y = ifftshift([1, 2, 3, 4]); % 将频谱中心移回原始位置reshape– 重新塑形数组。Y = reshape([1, 2, 3, 4, 5, 6], 2, 3); % 将向量重塑为2x3矩阵flip– 沿指定维度翻转数组。Y = flip([1, 2, 3, 4]); % 翻转向量rot90– 数组旋转90度。Y = rot90([1, 2; 3, 4]); % 旋转矩阵90度circshift– 循环移位数组。Y = circshift([1, 2, 3, 4], 2); % 向右循环移位两位interp1– 一维数据插值。x = [0, 1, 2]; v = [0, 1, 4]; xq = 0:0.5:2; yq = interp1(x, v, xq); % 插值得到新数据点pchip– 分段三次埃尔米特插值。x = [0, 1, 2]; v = [0, 1, 4]; xq = 0:0.5:2; yq = pchip(x, v, xq); % 使用PCHIP方法进行插值spline– 三次样条插值。x = [0, 1, 2]; v = [0, 1, 4]; xq = 0:0.5:2; yq = spline(x, v, xq); % 使用三次样条插值polyfit– 多项式拟合。x = [1, 2, 3, 4]; y = [1, 4, 9, 16]; p = polyfit(x, y, 2); % 拟合二次多项式polyval– 多项式求值。p = [1, 0, -1]; % x^2 - 1 y = polyval(p, [1, 2, 3]); % 在1, 2, 3处求值roots– 多项式的根。p = [1, -3, 2]; % x^2 - 3x + 2 r = roots(p); % 返回多项式的根linsolve– 解线性方程组。A = [1, 2; 3, 4]; B = [1; 1]; X = linsolve(A, B); % 解Ax = Bmldivide– 矩阵左除,解线性方程系统 ( Ax = B )。A = [1, 2; 3, 4]; B = [1; 1]; X = A \ B; % 解Ax = Bmrdivide– 矩阵右除,解线性方程系统 ( XB = A )。A = [1, 2; 3, 4]; B = [1, 1; 1, 1]; X = B / A; % 解XB = Apinv– 伪逆。A = [1, 2; 3, 4]; X = pinv(A); % 计算伪逆rank– 矩阵的秩。A = [1, 2, 3; 4, 5, 6]; r = rank(A); % 返回矩阵的秩trace– 矩阵的迹。A = [1, 2; 3, 4]; t = trace(A); % 返回矩阵的迹null– 矩阵的零空间。A = [1, 2; 3, 6]; N = null(A); % 计算零空间orth– 矩阵的正交基。A = [1, 0; 0, 1; 1, 1]; O = orth(A); % 计算正交基svds– 矩阵的奇异值分解。A = [1, 2; 3, 4]; [U, S, V] = svds(A, 2); % 进行奇异值分解eigs– 矩阵的部分特征值和特征向量。A = [1, 2; 3, 4]; [V, D] = eigs(A, 1); % 计算最大的特征值和对应的特征向量kron– 克罗内克积。A = [1, 2; 3, 4]; B = [0, 5; 6, 7]; C = kron(A, B); % 计算克罗内克积blkdiag– 构造块对角矩阵。A = [1, 2; 3, 4]; B = [5, 6; 7, 8]; C = blkdiag(A, B); % 构造块对角矩阵diag– 提取或创建对角矩阵。A = [1, 2, 3; 4, 5, 6; 7, 8, 9]; d = diag(A); % 提取对角线元素tril– 提取矩阵的下三角部分。A = [1, 2, 3; 4, 5, 6; 7, 8, 9]; L = tril(A); % 提取下三角部分triu– 提取矩阵的上三角部分。A = [1, 2, 3; 4, 5, 6; 7, 8, 9]; U = triu(A); % 提取上三角部分fliplr– 水平翻转矩阵。A = [1, 2; 3, 4]; B = fliplr(A); % 返回 [2, 1; 4, 3]flipud– 垂直翻转矩阵。A = [1, 2; 3, 4]; B = flipud(A); % 返回 [3, 4; 1, 2]rot90– 旋转矩阵90度。A = [1, 2; 3, 4]; B = rot90(A); % 旋转90度得到 [2, 4; 1, 3]repmat– 重复复制矩阵。A = [1, 2]; B = repmat(A, 2, 3); % 复制成2行3列 [1, 2, 1, 2, 1, 2; 1, 2, 1, 2, 1, 2]sparse– 创建稀疏矩阵。S = sparse([1, 3], [1, 2], [1, 4]); % 创建稀疏矩阵,元素在(1,1)和(3,2),值为1和4full– 将稀疏矩阵转换为完整矩阵。S = sparse([1, 2], [1, 2], [1, 4]); F = full(S); % 将稀疏矩阵转换为完整矩阵speye– 创建稀疏单位矩阵。S = speye(4); % 创建4x4的稀疏单位矩阵spdiags– 创建具有特定对角线的稀疏矩阵。B = spdiags([1:4]', 0, 4, 4); % 在主对角线上创建一个稀疏矩阵find– 查找非零元素的索引。A = [1, 0, 0; 0, 0, 2]; [row, col, v] = find(A); % 返回非零元素的行、列索引和值nnz– 计算矩阵中非零元素的数量。A = [1, 0, 0; 0, 0, 2]; count = nnz(A); % 返回2issparse– 检查矩阵是否为稀疏矩阵。A = sparse(eye(4)); result = issparse(A); % 返回 truegallery– 生成各种测试矩阵。A = gallery('hilb', 4); % 生成一个4x4希尔伯特矩阵magic– 创建魔方矩阵。M = magic(3); % 创建一个3x3的魔方矩阵hilb– 创建希尔伯特矩阵。H = hilb(4); % 创建一个4x4希尔伯特矩阵invhilb– 创建希尔伯特矩阵的逆。H = invhilb(4); % 创建4x4希尔伯特矩阵的逆hadamard– 创建哈达玛矩阵。H = hadamard(8); % 创建一个8x8哈达玛矩阵toeplitz– 创建托普利茨矩阵。T = toeplitz([1, 2, 3]); % 创建一个以[1, 2, 3]为第一列的托普利茨矩阵hankel– 创建汉克尔矩阵。H = hankel([1, 2, 3, 4]); % 创建一个以[1, 2, 3, 4]为第一列的汉克尔矩阵vander– 创建范德蒙德矩阵。V = vander([1, 2, 3]); % 创建一个3x3的范德蒙德矩阵compan– 创建伴随矩阵。C = compan([1, -3, 2]); % 创建一个多项式x^2 - 3x + 2的伴随矩阵chol– 生成一个矩阵的乔尔斯基分解。A = [4, 1; 1, 3]; R = chol(A); % 返回A的乔尔斯基因子qr– 计算QR分解。A = [1, 2; 3, 4]; [Q, R] = qr(A); % 返回QR分解lu– 计算LU分解。A = [1, 2; 3, 4]; [L, U] = lu(A); % 返回LU分解besselj– 贝塞尔函数的第一类。x = linspace(0, 10, 100); y = besselj(1, x); % 计算一阶贝塞尔函数的第一类integral– 数值积分。f = @(x) x.^2; result = integral(f, 0, 1); % 计算从0到1的x^2的积分ode45– 解常微分方程。f = @(t, y) -y; [t, y] = ode45(f, [0 10], 1); % 用ode45求解dy/dt = -yfsolve– 解非线性方程。f = @(x) x.^2 - 4*x + 4; x = fsolve(f, 0.5); % 求解方程x^2 - 4x + 4 = 0fminbnd– 在指定范围内查找函数的局部最小值。f = @(x) (x-3).^2; x = fminbnd(f, 0, 5); % 在0到5范围内找到函数的最小值fminsearch– 使用无约束的下降方法查找函数的最小值。f = @(x) (x-3).^2 + (x-5).^4; x = fminsearch(f, 0); % 找到函数的最小值quad– 使用自适应辛普森法进行数值积分。f = @(x) exp(-x.^2); result = quad(f, 0, Inf); % 计算从0到无穷的e^(-x^2)的积分
其他
对数(log)的使用
- 以e为底的对数用log()表示,如: log(a)
- 以10为底的对数用log10()表示,如: log10(a)
- 以2为底的对数用log2()表示,如: log2(a)
- 对于其它如 l o g a b log _ab logab 用 l o g b / l o g a logb/loga logb/loga
四种取整函数
MATLAB中对取整,给出了四种不同取整方法的函数,分别是:
- fix
- floor
- ceil
- round
- fix()
向靠近0的方向取整,比如:
fix(2.2)=2
fix(2.9)=2
fix(-1.2)=-1
fix(-2.7)=-2
生成随机数
首先使用 rng 函数设置随机数生成的种子为 1,这样每次运行时都会生成相同的随机数序列。
然后使用 randi 函数生成大小为 1×10 的随机数序列,其中 randi([0 1], 1, 10) 表示生成 0 和 1 的随机数序列。
最后使用 disp 函数显示生成的随机数序列。
- 生成0,1随机数
% 设置随机数生成的种子 rng(1); % 生成随机数序列 random_seq = randi([0 1], 1, 10); % 显示随机数序列 disp(random_seq);
abs() 数值的绝对值和复数的幅值
- abs(x),如果x是数值,那返回值就是数值x的绝对值
- abs(x),如果x是数组,那返回值就是一个数组,而数组中每一个元素都是原数组x中元素的绝对值
- abs(x),如果x是复数:a+bj,那返回值就是复数的幅值: a b s ( x ) = s q r t ( a 2 + b 2 ) abs(x)=sqrt(a^2 +b^2) abs(x)=sqrt(a2+b2),其中sqrt是开根号的意思,也就是: a 2 + b 2 \sqrt{a^2+b^2} a2+b2
- abs(x),如果x是复数数组,那返回值就是一个数组,而数组中每一个元素都是原数组x中复数元素的幅值
mean()均值
- mean(x),如果x是数组,那返回的就是数组的均值
m e a n ( x ) = x 1 + x 2 + . . . . + x n n mean(x)= \frac{x_1+x_2+….+x_n}{n} mean(x)=nx1+x2+….+xn
mod()取余
M = m o d ( X , Y ) M = mod(X,Y) M=mod(X,Y)
返回 X X X对 Y Y Y取模运算的结果。这里 X X X可以是一个数组。
共轭转置和转置
A = [1+2i, 2.3+5.3i , 1.3+5.8i; 5+4.6i, 3.2+4.2i, 7.1+2.3i]; B = A'; % 共轭转置 C = A.'; % 转置
fread函数用法
fread函数常见用法:1、A=fread(fileID,sizeA,precision,skip,machinefmt) 2、A=fread(fileID) 3、fread(fileID,sizeA) 4、A=fread(fileID,sizeA,precision) 5、A=fread(fileID,sizeA,precision,skip) 6、A=fread(fileID,sizeA,precision,skip)
直接讲第一种参数最多时候的用法,其他可以类推。
fread函数主要用法读取二进制文件。
下面是常用参数的含义:
1、fileID 文件标识
打开的文件标识。比如fid=fopen(‘file.dat’); fid就是fileID,即文件标识
2、sizeA 输出数组的维度
有3种参数,Inf、n、[m,n]
Inf 代表输出数据是列向量,文件中每一个元素对应一个值
n 代表有n个元素的列向量
[m,n] 代表按列向量排列的m行n列的矩阵,n可以取Inf,但m不可以
3、precision 需要读取数据的类型和大小,默认’uint8=>double’
常见有uint,uint8、uint16等数据格式,需要根据源数据来确定
4、skip 代表跳过多少字节,默认为0
5、machinefmt 待读取数据字节的排列方式,默认为’n’
需要根据源数据格式来确定,有’b’、‘l’、‘s’、’a’等格式
‘n’就是系统字节的排列顺序,即‘native’
‘b’就是’ieee-be’,即’Big-endian ordering’,即低位字节排放在内存的高地址端,高位字节排放在内存的低地址端
‘l’就是‘ieee-le’,即‘Little-endian ordering’即低位字节排放在内存的低地址端,高位字节排放在内存的高地址端
addpath()函数的用法
matlab在执行程序的时候,如果文件不在搜索路径中,就无法找到该文件,因此,就需要将某些文件夹添加为搜索路径,这样程序才能找到,例如:
假设当前.m文件所在路径为D:/code, 需要将该路径下面的data以及data下的全部子文件夹添加进搜索路径。可以用addpath添加到搜索路径中:
- addpath参数为绝对路径:
addpath(genpath(‘F:/code/data’))
- add参数为相对路径:
addpath(genpath(‘data’))
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/109974.html


