A = [1 2;3 4;5 6]
v = [1 2 3] % 这是一个行向量
v = [1; 2; 3] % 这是一个列向量
v = 1:0.1:2 % 生成从1到2步长为0.1的行向量(包括两端的1和2)
v = 1:6 % 从1到6默认步长为1
A = ones(2,3) % 2乘3的全1矩阵
A = 2*ones(2,3)
A = zeros(2,3) % 2乘3的全0矩阵
A = rand(2,3 )% 2乘3的随机数矩阵
A = randn(3,3) % 3乘3的标准正态分布随机数
A = eye(7) % 对角阵
sz = size(A) % 返回一个一行二列矩阵(行数,列数)
size(A,1) % 返回行数
size(A,2) % 返回列数
length(A) % 返回列数和行数中的最大值
直方图显示
w = randn(1,10000))% 标准正太公式
hist(w)
hist(w,50) # 显示50个段
导入和输出数据
导入数据:
load filename.dat
load('filename')
查看全局变量:
who % 查看当前范围内的变量
whos % 查看当前范围内变量的详细信息(bytes、size、class)
clear variable % 在当前范围内消除变量
clear % 消除所有全局变量
输出数据:
save filename.mat variable % 将变量保存为matlab文件,二进制格式
save filename.txt variable -ascii % 将变量保存为人可读的ascii格式
使用数据
矩阵索引
A = [1 2; 3 4; 5 6]
A(3,2) # 第三行第二列
A(3,:) # 第三行所有数据
A([1 3],:) # 第一和第三行的所有数据
A([1,3],:) = [1,1,1;2,2,2] # 给第一和第三行赋值
矩阵添加行列
A = [A,[1;1;1]] % 向A矩阵添加新列
A = [A;[1,1,1]] % 向A矩阵添加新行
A = [A;zeros(1,3)]
b = A(:) # 将A的所有数据转变为列向量赋值给b
矩阵合并
A = ones(4,4) B = zeros(4,4)
C = [A,B] # 左右合并
C = [A;B] # 上下合并
矩阵计算
A = [1 2;3 4; 5 6]
B = ones(3,2)
C = ones(2,2)
矩阵乘法
D = A*C % 3*2矩阵
位置乘除法
D = A .* B % 3*2矩阵,各个位置分别相乘
D = A ./ B % 3*2矩阵,各个位置相除
A .^ 2 % A矩阵各个位置平方
其他运算
D = log(A) % 对每个位置做对数运算
D = exp(A) % 对每个位置做指数运算
D = abs(A) % 对每个位置做绝对值运算
D = -A % 对每个位置取负
D = A + 1 % 对每个位置加1
转置矩阵
D = A'
v = zeros(10,1)
for循环
for i = 1:10,
v(i) = 2^i
end;
while循环
i = 1;
while i <= 5,
v(i) = 100;
i = i + 1
end;
break语句
i = 1
while true,
v(i) = 999
i = i+1;
if i == 6,
break;
end;
end;
if语句
v = 1
if v == 1,
disp('this value is one');
elseif v == 2, % elseif 不是elif
disp('the value is two');
else,
disp('this value is not two or one');
end;