矩阵相关:
在matlab中,矩阵或向量是 column-major 表示形式。用 [] 来构建向量或矩阵, 用()来引用向量或矩阵中的元素;用:表示矩阵中的该index下的所以元素;
matlab中取整函数的使用方法:(来自:http://www.ilovematlab.cn/thread-91895-1-1.html论坛)
Matlab取整函数有: fix, floor, ceil, round.具体应用方法如下:
fix朝零方向取整,如fix(-1.3)=-1; fix(1.3)=1;
floor,顾名思义,就是地板,所以是取比它小的整数,即朝负无穷方向取整,如floor(-1.3)=-2; floor(1.3)=1;floor(-1.8)=-2,floor(1.8)=1
ceil,与floor相反,它的意思是天花板,也就是取比它大的最小整数,即朝正无穷方向取整,如ceil(-1.3)=-1; ceil(1.3)=2;ceil(-1.8)=-1,ceil(1.8)=2
round四舍五入到最近的整数,如round(-1.3)=-1;round(-1.52)=-2;round(1.3)=1;round(1.52)=2。
matlab中与随机相关的知识:
随机数生成:
rand:生成均匀分布的伪随机数,分布在(0,1)之间; 如:rand(m,n):生成M*N的随机矩阵;
randn:生成标准正态分布的伪随机数,均值为0,方差为1;如:randn(m,n):生成M*N的随机矩阵;
randi:生成均匀分布的伪随机整数;如:randi(max), 在区间(0,max] 生成随机数;randi([min,max]), 在区间 [min,max] 之间生成随机数; randi(max, m, n)或randi([min, max], m, n)生成随机矩阵;
随机排序:
randperm函数,可以随机排列一个列数字,用法: randperm(n), 随机排列从区间 [1,n] 的整数; randperm(n,k), 随机排列从区间 [1,n] 的整数,并随机返回其中的K个数;
matlab中数据处理的相关函数:
Zscore标准化函数: 什么是zscore? 即把数据处理以后变为方差为1,均值为0;
用法1: Z = zscore(X) % 其中X为一维向量; 用法2: Z = zscore(X,flag,dim) % 其中X为一个二维数组, flag为0 表示无偏估计的方差,为1表示有偏估计;
% dim 表示对那个数轴操作,用为1表示结列;为2 表示对行操作;mapminmax()函数: 把一个矩阵的行向量映射到 规定的范围内(默认为[-1,1]);
Y = mapminmax(X, Ymin, Ymax); % X为一个二维矩阵,Ymin 与 Ymax 指定了映射范围;如: Y= mapminmax(X, 0, 1);mapstd() 函数: 把一个矩阵按行, 标准化为指定的标准差与均值(默认:标准差为1,均值为0)
Y = mapstd(X, Ymean, Ystd) %X 为一个矩阵, Ymean 表示均值, Ystd 表示标准差;数据的FFT变换:
Y = fft(X,[],dim) // X 为一个二维矩阵, [] 表示第二个参数为空, dim表示对指定的维度进行变换,默认为列,即第1维度; Y = fft(X,n,dim) // 参数n 指定了变换之后的 size; 如;n =256, 则变换后的FFT由256个点组成;
复数的相关操作:
假如 Z 为一个复数, 我们可以进行:
1. 求实部: real(Z) 2, 求虚部: imag(Z) 3. 求共轭: conj(Z) 4. 求复数模的平方: Z .* conj(Z)
矩阵相关操作:
全零矩阵;全 1 矩阵;单位矩阵:
zeros([m n]) %都是以二维矩阵为例; ones([m n]) eye([m n])
把一个矩阵扩展: repmat()函数:
B = repmat(A, [m n]) % 把矩阵A 复制扩展为矩阵B, 例如:B= repmat(A, [2, 3]) , 就变为了B= [ A, A, A A, A, A ]矩阵的重新: reshape()函数:把一个矩阵按 列优先 进行重排为指定的新矩阵;
B= reshape(A, [m n]) //把矩阵A变为 m*n 的矩阵B, 要求: A的总元素个数必须等于m*n;求:矩阵每一维度的大小, size()函数:
用法1: size(A) //返回 A的每一维度的 大小; 用法2: size(A, dim) //返回指定维度的大小; 例如: 若 A 为一个 4*3 矩阵: 则 size(A) 为 [3 2]; size(A, 1) 为4;