数字图像处理的书看到第三章,想着学习matlab开始运行算法,目前是matlab的基础知识
基础知识
特别喜欢快捷键,下面记录书上讲的关于快捷键的内容
1)选择:shift+箭头键
2)注释:ctrl+R 消除注释用ctrl+T
3)缩进 :ctrl+],ctrl+[
在命令行输入edit打开编辑窗口,输入clear all清除当前空间的变量函数,输入clc清除命令行当前页的所有内容。还有最好用的箭头,向上 的箭头可以找到前面输入的内容,这样如果出现错误不用重新输入支架按箭头修改上一行的错误内容,节省时间。
数组的创建与操作
创建:
1)将数组放入[]内,行之间用逗号或者空格,列间用分号。
2)用冒号创建
3)用函数创建
以上三种,冒号知道步长,不知道个数。函数知道个数,不知道步长,根据当前需要来选择。
访问:较复杂自行百度
数组的左除和右除:左除左边除右边,./竖线倒向右边;右除右边除左边,.\竖线倒向左边。
**点积**dot(A,B)
关系运算注意其中的不等于~=
数组与某一常数进行比较,数组中每个元素均与常数比较,真为1 ,假为0
矩阵表示
1)直接生成
2)载入外部数据文件
Load函数用于载入生成的包含矩阵的二进制文件,或者读取包含数值数据的文本文件。
用记事本建立数组,保存为data.txt文件,再将文件放入matlab工作目录。在命令行输入
load data.txt
3)内置函数创建
这些函数很多,需要用到直接百度从张强老师的书上直接截图过来
4)利用M文件创建和保存
创建M文件,在其中输入矩阵,保存为matrix.m,然后在命令行中输入matrix,即可。
寻访矩阵
用代码说明
双下标
>> r=rand(3)
r =
0.8147 0.9134 0.2785
0.9058 0.6324 0.5469
0.1270 0.0975 0.9575
r11=r(1,1)
r11 =
0.8147
用单下标
A=[1 1 1;2 2 2;3 3 3]
A =
1 1 1
2 2 2
3 3 3
>> A1=A(3,3)
A1 =
3
>> A2=sub2ind(size(A),3,3)
A2 =
9
>> A3=A(9)
A3 =
3
访问单元素必须指定两个参数,即行和列
访问多元素
b([3,5,7])访问第3,5,7个元素
b(1:3,:)访问第一行到第三行的全部元素
b(:,1:3)访问第一列到第三列的全部元素
b(:)访问所有元素
b(end)访问所有元素
矩阵拼接
C=[A B]
C=[A:B]
拼接函数cat
C=cat(dim,A,B)dim为拼接的方向
B=repmat(A,[m,n])
B中包含mxn个A
-
难点解决
函数logspace(a,b)/logspace(a,b,n)
没有n默认为50,以下为百度到的内容帮助理解
u=logspace(2,5,5)
意思是把10^2到10^5之间分成5份(5-2)/(5-1)=3/4,
即,【2,2+3/4,2+3/4+3/4,2+3/4+3/4+3/4,5】
u =
1.0e+005 *
0.0010 0.0056 0.0316 0.1778 1.0000
实际上就是
u=[10^2 10^2*10^(3/4) 10^2*10^(6/4) 10^2*10^(9/4) 10^5]
意思就是将a,b取对数然后分成等差数列,一共n个。其实就是首项为a,最后一项为b的等比数列。非均匀分布对于我这种低智商的很难反应过来
函数linspace
百度百科
linspace是Matlab中的均分计算指令,用于产生x1,x2之间的N点行线性的矢量。其中x1、x2、N分别为起始值、终止值、元素个数。若默认N,默认点数为100。
linspace(5,100,20)和5:5:100的区别在于前者已知元素总个数而不知道步长,后者已知步长不知元素个数,这两者的效果是一样的。