定义函数
函数单独保存一个可搜索到的文件
使用自定义函数
语法细节(可不看,上面内容太少,不让发,下面的是凑字数的)
%%
% 区分大小写
% 索引从1开始
% 五种数据类型(数字、字符与字符串、矩阵、元胞数组、结构体)
% sin() 等函数默认弧度制
%% 关键字
inf % 无穷大
eps % 无穷小
Nan % not a number inf/inf
pi % 圆周率
format %设置结果精确度和表示方式
%%
% 字符和字符串
s = 'a'
abs(s)
char(97)
length(s)
%%
% 矩阵
A = [1,2,3; 4,5,6; 7,8,9]
B = A'
C = A(:)
D = inv(A) %求逆
E = zeros(10, 5, 3) % 十行五列三维的矩阵
E(:, :, 1) = rand(10, 5) % 生成 10 行 5 列的均匀分布的伪随机数
E(:, :, 2) = randi(5, 10, 5) % 生成 最大值为 5 的 10 行 5 列的均匀分布的随机整数
E(:, :, 3) = randn(10, 5) % 生成 10 行 5 列的标准正太分布的伪随机数(均值为 0 ,方差为 1)
%%
% 元胞数组
A = cell(1,6)
A{2} = eye(3) % 对角线为 1 的 3*3 的单位矩阵
A{5} = magic(5) % 5阶的幻方
B = A{5}
%%
% 结构体
books = struct('name',{{'Machine Learning','Data Mining'}},'price',[30,40] )
books.name
books.name(1) % 取出cell
books.name{1} % 取出值
%% Matlat矩阵操作
%%
% 1. 矩阵的定义与构造
A = [1 2 3 4 5 8 4 6]
B = 1: 2 : 9
C = repmat( B, 3, 1)
D = ones( 2, 4)
%%
% 2. 矩阵的四则运算
A = [1 2 3 4 ; 5 6 7 8] % 一行元素可以用空格或逗号分隔
B = [1 1 2 3 ; 2 2 1 1]
C = A + B
D = A - B
E = A * B'
F = A .* B % 对应项相乘
G = A / B % G = A * pinv(B)
H = A ./ B % 对应项相除
%%
% 3.矩阵的下标
A = magic(5)
B = A(2, 3)
C = A(3, :) % : 代表全部
D = A(:, 4)
[m, n] = find(A > 20) % : 找到矩阵中大于 20 的元素位置
A([1 3 5])
A ([1 3 ; 2 5])
A ([1 3],[2 5])
A (1 : 10)
A (2 : 2: 10)
%% for循环
% for 循环变量 = 初值 : 步长 : 终值
% 执行语句1
% .
% .
% .
% 执行语句n
% end
%步长是默认为1, 是一次循环 初值 向 终值 变化的多少
% 1^2 + 2^2 + 3^2 + 4^2 + 5^2
sum = 0
for n = 1: 5 % 等价于 for n = 1: 1: 5
sum = sum + n^2
end
%% while循环
% while 条件表达式
% 执行语句1
% .
% .
% .
% 执行语句n
% end
% 求 1 + 2 + 3 + ... + 10
s = 0;
n = 1;
while n <= 10
s = s + n
n = n + 1
end
%% if ... end 结构
% if 条件表达式
% .
% .
% .
% 语句体
% .
% .
% .
% end
%% if ... else ... end
% if 条件表达式
% 语句体1
% else
% 语句体2
% end
%% switch ... case ..end结构
% switch 表达式(数字或字符串)
% case 数字或字符串1
% 语句体 1;
% case 数字或字符串2
% 语句体 2;
% .
% .
% .
% otherwise
% 语句体n;
% end
%% 基本绘图操作
% 1. 二位平面绘图
x = 0: 0.01: 2*pi ;
y = sin(x) ;
figure % 建立一个幕布
plot(x, y) % 绘制二维图
title('y = sin(x)') % 设置标题
xlabel('x') % 给 x 轴命名标签
ylabel('sin(x)') % 给 y 轴命名标签
xlim([0 2*pi]) % 设置曲线在 x 轴的范围
x = 0: 0.01: 20
y1 = 200 * exp(-0.05*x).*sin(x);
y2 = 0.8 * exp(-0.5*x).*sin(10*x);
figure
[AX,H1,H2] = plotyy(x,y1,x,y2,'plot'); % 共用一个 x 轴,y轴有不通取值 默认不通线不通颜色
set(get(AX(1),'Ylabel'),'String','Slow Decay')
set(get(AX(2),'Ylabel'),'String','Fast Decay')
xlabel('Time (\musec)')
title('Multiple Decay Rates')
set(H1,'LineStyle','--')
set(H2,'LineStyle',':')
%%
% 2.三维立体绘图
t = 0:pi/50:10*pi;
plot3(sin(t),cos(t),t)
xlabel('sin(t)')
ylabel('cos(t)')
zlabel('t')
grid on % 加网格线
axis square %空间正方形
%%
x = sparse(magic(20)>395) %生成20的稀疏矩阵