%% 一、清空环境变量及命令
clear all %清除workspace中的所有命令
clc %清除command window中的所有命令
%% 二、变量命名规则
%%
% 1. 变量名区分大小写
A=3
a=3
%%
% 2.变量名长度不超过63个字符
abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1=1
%%
% 3.变量名以字母开头,可以由字母、数字和下划线组成,但不能使用标点
% 3A=4
% .a=5
% /b=6
a_2=3
%%
% 4.变量名应该简洁明了,通过变量名可以直观看出变量所表示的物理含义
A = rand(3,5)
rows = size(A, 1)
cols = size(A,2)
%% 三、MATLAB数据类型
%%
% 1.数字
2+4
10 - 7
8/2
3 * 7
%%
% 2.字符和字符串
s = 'a'
abs(s) % ascll码
char(65) % 字符串
num2str(65) %将数字转换为字符数组
str='I love MATLAB & mechine learning'
length(str) % 空格也占字符数
doc num2str % 打开文档
%%
% 3.矩阵
A=[1 2 3;4,5,6;7 8 9;1,2,3]; % 用空格或逗号隔开,每行用;隔开
B=A'; %转置A
C=A(:); % 竖着拉长矩阵A
A2=[1 2 3;4 5 2;3 2 7;]
D= inv(A2) % 求逆矩阵,必须是方阵
A2*D
E=zeros(10,5,3) %创建一个3维的10行5列的零矩阵
% rand生成的伪随机数为(0,1)之间的
E(:,:,1) = rand(10,5) %返回一个10*5的均匀分布的伪随机数矩阵
% randi生成均匀分布的伪随机整数
E(:,:,2)=randi(3,10,5) % 生成10*5大小在(0,3]之间的伪随机整数矩阵
% randn生成标准正态分布的伪随机数(均值为0,方差1)
E(:,:,3)=randn(10,5)
%%
% 4.元胞数组
A=cell(1,6) % 生成一个类型为 double 的1*6的元胞数组
A{2}=eye(3) % eye(n) 返回一个主对角线元素为 1 且其他位置元素为 0 的 n×n 单位矩阵。
% magic(n) 返回由 1 到 n平方 的整数构成并且总行数和总列数相等的 n×n 矩阵。n大于或等于 3,每行每列及对角线上的和相等
A{5}=magic(5)
B=A{5}
C=A{2}
%%
% 5.结构体
books= struct('name',{{'machine learning','Data Mining'}},'price',[30,40])
books.name
books.price
books.name(1)
books.name{1}
books.price(1)
%% 四、矩阵操作
%%
% 1.矩阵的定义与构造
A=[1 2 3 4;5 6 7 8;]
B=1:2:9 % 生成1到9步长为2的矩阵
C=repmat(B,3,2) %把B重复3行2列
D=ones(2,4) % 生成一个2行4列的全1矩阵
%%
% 2. 矩阵的四则运算
A = [1 2 3 4; 5 6 7 8]
B = [1 1 2 2; 2 2 1 1]
C = A + B
D = A - B
E = A * B' % A乘以B的转置
F = A .* B % A和B的对应项相乘
G = A / B % A/B 相当于就是A乘以B的逆,G*B=A SG*B*pinv(B)=A*pinv(B)
H = A ./ B % A、B对应项相除
%%
% 3.矩阵的下标
A= magic(5)
B= A(2,3)
C= A(3,:)
D= A(:,4)
[m,n]= find (A > 20) %找大于20的序号值/矩阵,按列查找的,该数的坐标行值保存在m向量,列坐标保存在n向量中
[x,y] = find ( A==20 )
%% 五、MATLAB逻辑与流程控制
%%
% 1. 顺序结构
%%
% 2. 循环结构
% for循环 for i=1:2:11 1到10步长为2
sum=0;
for i=1:5
p=1;
for j=1:i
p=p*j;
end
sum=sum + p
end
% while循环
%{
while 条件表达式
执行语句1
...
执行语句n
end
%}
%%
% 3. 分支结构
% if ... end 结构
%{
if 条件表达式
语句
end
%}
% if ... else ...end
%{
if 表达式
语句1
else
语句2
end
%}
% switch 语句
%{
switch 表达式
case 数值或字符串1
语句1;
case 数值或字符串2
语句2;
otherwise
语句n;
end
%}
%% 五、matlab基本绘图操作
%%
% 1. 二维平面绘图
x= 0:0.01:2*pi;
y= sin(x);
% figure % 仅仅建立一个幕布,有时可以省略
plot(x,y)
title('y=sin(x)') % 给绘的图添加标题
xlabel('x') %加上横坐标标签
ylabel('sin(x)') %加上纵坐标标签
xlim([0 2*pi]) %设置或查询 x 坐标轴范围
%{
颜色选项参数
红:r 粉红:m
绿:g 青:c
蓝:b 白:w
黄:y 黑:k
线形选项参数
实线:-
虚线:--
冒号线: :
点画线: -.
数据标记点选项参数
点 . 上三角 ^
十字号 + 下三角 v
圆圈 o 左三角 <
星号 * 右三角 >
叉号 x 五角星 p
正方形 s 六角星 h
菱形 d
%}
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); %绘制y1和y2曲线,其中plotyy(X1,Y1,X2,Y2,f) 使用指定的绘图函数来绘制数据。
% 返回的AX是两个Axes数组,H1、H2是两条Line
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')
hold on % 保留当前坐标区中的绘图,从而使新添加到坐标区中的绘图不会删除现有绘图
hold off % 将保留状态设置为 off,从而使新添加到坐标区中的绘图清除现有绘图并重置所有的坐标区属性。
grid on % 显示 gca 命令返回的当前坐标区的主网格线。主网格线从每个刻度线延伸。
grid off % 删除当前坐标区或图上的所有网格线。
axis square % axis设置坐标轴范围和纵横比
%%
% 3.图形的保存与复制
MATLAB学习笔记
最新推荐文章于 2025-05-14 23:11:21 发布