MATLAB常用易混操作必知必会(一)矩阵运算【连载中】

对数区分

log()		%自然对数ln
log10()		%常用对数lg
log2()      %底为2对数lb
logN()      %底为N对数
logm()		%对矩阵求对数

指数区分

exp()	%不能写成e^x
exp(1)	%不能写成e

取整函数

round	%四舍五入取整
fix	    %朝0方向取整
floor	%朝-∞方向取整
ceil	%朝+∞方向取整

取余函数


mod(-13,5)  %结果为3
rem(-13,5)  %结果为-2

复数

由于 i 和 j 既可以表示迭代变量也可以表示虚部,所以迭代变量可以改成 ii 、jj ,表示复数采用 1i 以作区分

数组遍历

x(:)

x(j:end)

x(:,j)

如果已知向量中所需元素数目(而非每个元素之间的间距),则可以改用 linspace 函数:

linspace(first,last,number_of_elements)

注意使用逗号 (,) 分隔 linspace 函数的输入

x = linspace(0,1,5)
x = 
    0    0.250    0.500    0.750    1.000

随机数矩阵

x = rand(2)
x = 
    0.8147    0.1270
    0.9058    0.9134

rand(2) 命令中的 2 指定输出将为一个 2×2 的均匀分布随机数矩阵

x = rand(2,3)
x = 
    0.6324    0.2785    0.9575
    0.0975    0.5469    0.9649
rand(m,n)            %生成m行n列的均匀分布的伪随机数
rand(m,n,‘double’)   %生成指定精度的均匀分布的伪随机数,参数还可以是’single’
rand(RandStream,m,n) %用指定的随机种子生成伪随机数

randn(m,n)            %生成m行n列的标准正态分布的伪随机数
randn(m,n,‘double’)   %生成指定精度的标准正态分布的伪随机数
randn(RandStream,m,n) %用指定的随机种子生成标准正态分布的伪随机数

randi(M)              %在(0,M)生成均匀分布的伪随机数
randi(M,m,n)          %在[0,M]生成m×n随机矩阵
x = randi([M,N],m,n)  %在[M,N]生成m×n随机矩阵

可以使用 max 函数确定向量的最大值及其对应的索引值。max 函数的第一个输出为输入向量的最大值。执行带两个输出的调用时,第二个输出为索引值。

[xMax,idx] = max(x)

在R2009b以后,如不需要索引可以替换成~忽略输出。

可能只需要包含向量中最大值的索引:

density = data(:,2)
[~,ivMax] = max(v2)
densityMax = density(ivMax)

可以使用逻辑数组作为数组索引,在这种情况下,MATLAB 会提取索引为 true 的数组元素。以下示例将会提取 v1 中大于 6 的所有元素。

v = v1(v1 > 6)
v =
    6.6678
    9.0698

矩阵转置

B = A.' 	%转置
B = A'  	%共轭转置

特征值与特征向量

E = eig(A)       %求矩阵A的全部特征值,构成向量E。
[X,D] = eig(A)   %求矩阵A的全部特征值,构成对角阵D并产生矩阵X,X各列是相应的特征向量。

下期预告:快捷操作与程序结构

猜你喜欢

转载自blog.csdn.net/weixin_43335260/article/details/108703403