由于基础比较薄弱,所以要从头学起。
matlab的常用命令。
数组索引:
v=[1 3 5 7 9]
则v(2)=3;v(1:3)=1 3 5;v(3:end)=5 7 9;v(1:2:end)=1 5 9;v([1 4 5])=1 7 9;
x=linspace(a,b,n)产生一个有n个元素的行向量x,n均分区间[a,b]。
矩阵索引:
A=[1 2 3;4 5 6;7 8 9]
则A(2,3)=6;A(:,3)=第三列元素;A(2,:)产生第二行元素;A(1:2,1:3)提取矩阵的前两行三列。A(end,end)=9;A([1 3],[2 3])=[2 3;8 9];
B(:,3)=0,将第三列全部变化为0.
A(:)将矩阵所有元素排成一列,这在求和很有用,例如sum(A(:))就是对矩阵求和。
图像垂直翻转:B=A(end:-1:1,:);
截取图像的一部分:B=A(128:327,213:321);
图像的二次取样(图像缩小):B=A(1:2:end;1:3:end);
选取图像中间水平扫描线:plot(A(512,:));
给出矩阵的行数:m=size(A,1);给出矩阵的列数n=size(A,2)。例如
选取图像中间垂直扫描线plot(A(size(A,1)/2,:));
一些重要的标准数组:
生成m*n的double型0矩阵:zeros(m,n);
生成m*n的double型1矩阵:ones(m,n);
生成m*n的logical型1/0矩阵:true/false(m,n);
生成m*m的魔方型矩阵:magic(m),其行和列和主对角元素和均相等,元素为整数。
生成m*n的随机矩阵:rand(m,n);元素在[0,1]之间。
生成元素正态分布的m*n矩阵:randn(m,n);元素正态分布,均值为0,方差为1.