2023.2.8下午从b站自学d的基础知识
文字内容由视频学习:b站up主——爱研究的小阿楠
一:变量命名
%% 独占一行的注释(有上下横线的分割)
%普通注释
clear all 清楚所有变量(右侧工作区)
clc(清楚命令行窗口)
关于变量命名规则:注意区分大小写,变量名简洁明了见名知意
二:数据类型
1.数字
2.字符与字符串
s='a' (单引号表字符串)
abs(s) %a的ASCII码值
char(97) %输出a
num2str(65) %输出65
str='I love matlab' %输出字符串
length(str) %字符串的长度
3.矩阵
A=[1 3 4;5 7 8;3 5 6]
B=A'
C=A(:)
D=inv(A)
A =
1 3 4
5 7 8
3 5 6
B=A'(把A进行转置,列变行,行变列
B =
1 5 3
3 7 5
4 8 6
C=A(:) (竖向拉长)
C =
1
5
3
3
7
5
4
8
6
D=inv(A) (求逆矩阵)(inv不是很会)
E = zeros(10,5,3) %创建一个10行5列3维(共3个举证)的全0矩阵
E = ones(10,5,3)
E(:,:,1) =
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1E(:,:,2) =
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1E(:,:,3) =
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
E(:,:,1)=rand(10,5) rand 生成均匀分布的伪随机数 分布在(0-1)之间
E(:,:,2)=randi(5,10,5) randi:生成均匀分布的随机数
E(:,:,3)=randn(10.5)
E(:,:,1) =
0.1622 0.4505 0.1067 0.4314 0.8530
0.7943 0.0838 0.9619 0.9106 0.6221
0.3112 0.2290 0.0046 0.1818 0.3510
0.5285 0.9133 0.7749 0.2638 0.5132
0.1656 0.1524 0.8173 0.1455 0.4018
0.6020 0.8258 0.8687 0.1361 0.0760
0.2630 0.5383 0.0844 0.8693 0.2399
0.6541 0.9961 0.3998 0.5797 0.1233
0.6892 0.0782 0.2599 0.5499 0.1839
0.7482 0.4427 0.8001 0.1450 0.2400
E(:,:,2) =3 4 2 3 5
1 2 2 2 4
5 2 5 4 3
5 3 1 1 3
3 1 1 4 3
3 1 1 1 2
2 5 4 2 3
5 5 4 4 3
2 3 4 4 5
1 1 3 1 4
E(:,:,3) =0.4669 -0.9415 -0.2741 0.2761 -3.0292
-0.2097 -0.1623 1.5301 -0.2612 -0.4570
0.6252 -0.1461 -0.2490 0.4434 1.2424
0.1832 -0.5320 -1.0642 0.3919 -1.0667
-1.0298 1.6821 1.6035 -1.2507 0.9337
0.9492 -0.8757 1.2347 -0.9480 0.3503
0.3071 -0.4838 -0.2296 -0.7411 -0.0290
0.1352 -0.7120 -1.5062 -0.5078 0.1825
0.5152 -1.1742 -0.4446 -0.3206 -1.5651
0.2614 -0.1922 -0.1559 0.0125 -0.0845
三:元胞数组和结构体
A=cell(1,6)
A{2} = eye(3) % 3*3对角线数值为1 的单位矩阵,并把这个矩阵放入到A的第2个小盒子% 这里用的matlab2016 从1开始计数,与c的数组下标有区别
magic(5) % 幻方 生成5*5的矩阵(横竖斜着相加和都是一样的)
A{5}= magic(5)
B=A{5} % 打开A的第5个盒子A =
1 至 5 列
[] [3x3 double] [] [] [5x5 double]
6 列
[]
B =17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
结构体
books = struct('name',{{'Machine Learning','Data Mining'}},'price',[30,40])% 这个是python语句
book.name &book中选择name的属性
book.name(1) %cell
book.name{1} %字符串
四:矩阵的操作
A=[1,2,3,4,5,6,7,8]
B=1:2:9 %从1到9中间隔为2的数 B=1 3 5 7 9
B=1:3:9 B=1,4,7
C=repmat(B,3,2) %重复执行3行2列
C=
1 4 7 1 4 7
1 4 7 1 4 7
D=ones(2,4) %生成一个2行4列全为1
D=
1 1 1 1
1 1 1 1
取矩阵的下标
A = magic(5)
B = A(2,3)
C = A(3,:) % :为取全部,那么这条语句表示取第三行
D = A(:,4) %取第四列
[m,n] = find(A > 20) %找到大于20的序号值/矩阵 取的是索引值
A =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
B =7
C =4 6 13 20 22
D =8
14
20
21
2m =
2
1
5
4
3
n =1
2
3
4
5 %把m,n结合起来找 m行n列
五:二维 平面
%二维平面绘图
x=0:0.01:2*pi; %自变量取值范围0-2pi,间隔步长为0.01
y=sin(x); %定义因变量
%%注意有无分号;
figure %建立一个幕布 也可以不写
plot(x,y) %实现图像的绘制 v.绘制图表
title('y=sin(x)') %加入图标的标题
xlabel('x') %注意是以字符串的形式加入
ylabel('sin(x)')
xlim([0 2*pi]) %保证图像的最后一个点在图的边缘而不是在图的中间就停止了
六: 三维平面
t=0:pi/50:10*pi;
plot3(sin(t),cos(t),t) %x,y,z,三维图用数字3
xlabel('sin(t)')
ylabel('cos(t)')
zlabel('t')
grid on %图片背景加了网格线
axis square %图片变得方正
[x,y,z]=peaks(30)
mesh(x,y,z)
grid
多个图像的排版
x=linspace(0,2*pi,60);
subplot(2,2,1) %把图形分为2行2列,该图形在第一个
plot(x,sin(x)-1);
title('sin(x)-1');axis([0,2*pi,-2,0])
subplot(2,1,2)
plot(x,cos(x)+1);
title('cos(x)+1');axis([0,2*pi,0,2])
subplot(4,4,3)
plot(x,tan(x));
title('tan(x)');axis([0,2*pi,-40,40])
subplot(4,4,8)
plot(x,cot(x));
title('cot(x)');axis([0,2*pi,-35,35])
attention:不同保持图形的方式,会使得图片的分辨率不同,便于写论文时图片的清晰