matlab笔记
数组
-
分隔列用空格或逗号,分隔行用分号;
-
数组加常数是其中每个元素分别加常数(元素级)。
-
用单引号转置矩阵,inv()表示逆矩阵。
-
乘法符号 * 是标准行与列之间的内积。
-
format 命令
可以显示更多小数位数:
format long p = a*inv(a)
将显示内容重置为更短格式:
format short p=a*inv(a)
format
仅影响数字显示,而不影响 MATLAB对数字的计算或保存方式。 -
实现元素级乘法,用".*",元素级幂运算“.^”,元素级除法“./”,元素级左除“.\”。
矩阵自乘 A.*A
-
水平串联:A=[a,a]
使用逗号将彼此相邻的数组串联起来称为水平串联。每个数组必须具有相同的行数。
-
垂直串联:A=[a;a]
同样,如果各数组具有相同的列数,则可以使用分号垂直串联。
查询引用
-
引用数组中特定元素:数组名(行号,列号)
-
可以在赋值语句左侧指定当前数组外部( 行或列超标)的元素。数组大小会增大以便容纳新元素。如:A(4,5) = 17
-
冒号运算符:
- start:end
B(1:3,3)表示列出第二列的前三行元素。
B(3,:)表示列出第三行的所有列元素。
- start:step:end
创建等距的向量组,如:0:10:100表示从0到100,间距为10,step默认为1。
多维数组
-
创建多维数组的一种方法是调用具有多个参数的
zeros
、ones
、rand
。第k个矩阵的第(i,j)个元素表示法:A (i,j,k)。 -
cell创建空元胞数组,{}创建非空。用数组名{下标号}检索。
-
单引号输入文本,如s='hello'。double(s)将其表示每个字符的ASCII码,char(s)是其逆转换。
-
创建结构体:
S.name = 'Ed Plum';
S.score = 83;
S.grade = 'B+'可用S.xxx检索。
-
不需要变量声明,遇新则创,遇旧则改。
循环及条件语句
if, elseif, else |
条件为 true 时执行语句 |
---|---|
for |
用来重复指定次数的 for 循环 |
while |
条件为 true 时重复执行的 while 循环 |
break |
终止执行 for 或 while 循环 |
continue |
将控制权传递给 for 或 while 循环的下一迭代 |
end |
终止代码块或指示最大数组索引 |
return |
将控制权返回给调用函数 |
图像
读取
imread
其返回的数据类型取决于其读取的image类型。
写入
imwrite
mImg=imread('图像地址');
显示
imshow
figure;
imshow(mImg);
转换为灰度图
mImg=rgb2gray(mImg);
类型转换
从0-255的无符号8位整数转换为0-1的双精度数:
mImg = im2double(mImg);
实现图像矩阵的归一化操作。使矩阵的每个元素的值都在0和1之间。
mImg = mat2gray(mImg);
数值类型
默认情况下,MATLAB以双精度浮点形式存储所有数值。
double |
双精度数组 |
---|---|
single |
单精度数组 |
int8 |
8 位有符号整数数组 |
int16 |
16 位有符号整数数组 |
int32 |
32 位有符号整数数组 |
int64 |
64 位有符号整数数组 |
uint8 |
8 位无符号整数数组 |
uint16 |
16 位无符号整数数组 |
uint32 |
32 位无符号整数数组 |
uint64 |
64 位无符号整数数组 |