>> a=3
a =
3
>> a=3; //加分号就暂时不输出a
>> a
a =
3
>> disp(a) //disp函数就是display a的意思,显示出a的数值
3
>> disp(sprintf('2 decimals:%0.2f',a)) //sprintf就是可以将参数转换成字符串
2 decimals:3.00
>> a=pi;
>> a
a =
3.141592653589793
>> format long //可以调整格式
>> a
a =
3.141592653589793
>> format short
>> a
a =
3.1416
>> A=[1,2,3] //逗号分隔即为一列
A =
1 2 3
>> [1,2,3;2,3,4] //分号分隔为一行
ans =
1 2 3
2 3 4
>> v=1:0.2:2 //意思为从1开始,0.2为单位,跳到2
v =
1 至 4 列
1.0000 1.2000 1.4000 1.6000
5 至 6 列
1.8000 2.0000
>> v=1:6 //从1跳到6,默认1为单位
v =
1 2 3 4 5 6
>> ones(2,3) //生成2行3列的全为1的矩阵
ans =
1 1 1
1 1 1
>> ans=2*ones(2,3)
ans =
2 2 2
2 2 2
>> w=zeros(1,3) //1行3列全为0的矩阵
w =
0 0 0
>> w=rand(1,3) //1行3列的随机,估计是【0,1)
w =
0.8147 0.9058 0.1270
>> rand(3,3)
ans =
0.9134 0.2785 0.9649
0.6324 0.5469 0.1576
0.0975 0.9575 0.9706
>> rand(3,3)
ans =
0.9572 0.1419 0.7922
0.4854 0.4218 0.9595
0.8003 0.9157 0.6557
>> randn(1,3) //更加高级的随机函数
ans =
-1.2075 0.7172 1.6302
>> hist(ans) //生成直方图
>> eye(4) //生成单位矩阵
ans =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
>> help eye // help加函数名可以了解更多
eye - 单位矩阵
此 MATLAB 函数 返回标量 1。
I = eye
I = eye(n)
I = eye(n,m)
I = eye(sz)
I = eye(classname)
I = eye(n,classname)
I = eye(n,m,classname)
I = eye(sz,classname)
I = eye('like',p)
I = eye(n,'like',p)
I = eye(n,m,'like',p)
I = eye(sz,'like',p)
另请参阅 ones, speye, zeros
eye 的参考页
名为 eye 的其他函数
>> eye(4,2)
ans =
1 0
0 1
0 0
0 0
>> A=[1 2;3 4;5 6]
A =
1 2
3 4
5 6
>> size(A)
ans =
3 2
>> sz=size(A)
sz =
3 2
>> size(sz)
ans =
1 2
>> size(A,1) //A矩阵的行数
ans =
3
>> size(A,2) //A矩阵的列数
ans =
2
>> v=[1 2 3 4]
v =
1 2 3 4
>> length(v) //对只有一行的矩阵给出长度
ans =
4
>> length(A) //对矩阵给出行数
ans =
3
>> length([1;2;3;4;5]) //对向量给出长度
ans =
5
>> pwd //现在所在位置
ans =
'/Users/chenzeyuan/Documents/MATLAB'
>> who //查询当前的变量
您的变量为:
A ans sz v
>> whos //详细查询变量
Name Size Bytes Class Attributes
A 3x2 48 double
ans 1x34 68 char
sz 1x2 16 double
v 1x4 32 double
>> clear ans //删去ans这个变量
>> A(3,2) //A3行2列的数
ans =
6
>> A(2,:) %means every element along that row/column
ans =
3 4
>> A(:,2)
ans =
2
4
6
>> A([1 3],:) //给出第1行和第3行所有列的矩阵
ans =
1 2
5 6
>> A(:,2)=[10;11;12] //把10,11,12赋给A的第2列
A =
1 10
3 11
5 12
>> A=[A,[100;101;102]] //加上100,101,102一列
A =
1 10 100
3 11 101
5 12 102
>> A(:) //把矩阵变向量
ans =
1
3
5
10
11
12
100
101
102
>> B=[11 12;13 14;15 16]
B =
11 12
13 14
15 16
>> C=[A B] //矩阵A和矩阵B合起来
C =
1 10 100 11 12
3 11 101 13 14
5 12 102 15 16
>> B=[B,[13;14;15]]
B =
11 12 13
13 14 14
15 16 15
>> C=[A;B] //把矩阵B加在矩阵A下
C =
1 10 100
3 11 101
5 12 102
11 12 13
13 14 14
15 16 15
>> size(C)
ans =
6 3
>> A=[1 2;3 4;5 6]
A =
1 2
3 4
5 6
>> B=[11 12;13 14;15 16]
B =
11 12
13 14
15 16
>> C=[1 1;2 2]
C =
1 1
2 2
>> A*C //进行矩阵的运算
ans =
5 5
11 11
17 17
>> A .^ 2 //A矩阵所有数乘以2
ans =
1 4
9 16
25 36
>> log(A) //矩阵所有数求log
ans =
0 0.6931
1.0986 1.3863
1.6094 1.7918
>> exp(A) //矩阵所有数进行e的幂运算,次数为矩阵对应的值
ans =
2.7183 7.3891
20.0855 54.5982
148.4132 403.4288
>> abs(A) //求绝对值
ans =
1 2
3 4
5 6
>> ones(3,1) //3行1列全为1
ans =
1
1
1
>> ones(3,2)
ans =
1 1
1 1
1 1
>> A+ones(3,2)
ans =
2 3
4 5
6 7
>> A+1 //A+1==A+ones(3,2),都是对所有数加一
ans =
2 3
4 5
6 7
>> A' //转置矩阵
ans =
1 3 5
2 4 6
>> (A')'
ans =
1 2
3 4
5 6
>> a=[1 15 2 0.5]
a =
1.0000 15.0000 2.0000 0.5000
>> val=max(a) //求最大值
val =
15
>> [val,ind]=max(a) //前面为最大值,后为其下标
val =
15
ind =
2
>> max(A) //对于一个矩阵来说,就是对每列求最大值
ans =
5 6
>> a<3 //比3小的为1,大的为0
ans =
1×4 logical 数组
1 0 1 1
>> find(a<3) //找到比3小的数的下标
ans =
1 3 4
>> A=magic(3) //生成3X3的矩阵,行与列加起来都一样
A =
8 1 6
3 5 7
4 9 2
>> [r,c]=find(A>=7) //对于矩阵的find,r表示行,c表示列
r =
1
3
2
c =
1
2
3
>> a
a =
1.0000 15.0000 2.0000 0.5000
>> sum(a) //计算总和,都加起来
ans =
18.5000
>> prod(a) //全部相乘
ans =
15
>> sum(A) //对于矩阵,对每列求和
ans =
15 15 15
>> prod(A) //对于矩阵,每列求乘积
ans =
96 45 84
>> floor(a) //向下求整
ans =
1 15 2 0
>> ceil(a) //向上求整
ans =
1 15 2 1
>> rand(3) //生成随机3X3矩阵
ans =
0.8147 0.9134 0.2785
0.9058 0.6324 0.5469
0.1270 0.0975 0.9575
>> max(A)
ans =
8 9 7
>> b=rand(3)
b =
0.9649 0.9572 0.1419
0.1576 0.4854 0.4218
0.9706 0.8003 0.9157
>> c=rand(3)
c =
0.7922 0.0357 0.6787
0.9595 0.8491 0.7577
0.6557 0.9340 0.7431
>> max(b,c) //求b,c矩阵对应位置的最大值
ans =
0.9649 0.9572 0.6787
0.9595 0.8491 0.7577
0.9706 0.9340 0.9157
>> max(A,[],1) //对于列里找最大
ans =
8 9 7
>> max(A,[],2) //对于行里找最大
ans =
8
7
9
>> max(max(A))
ans =
9
>> A(:)
ans =
8
3
4
1
5
9
6
7
2
>> max(A(:))
ans =
9
>> A=magic(9)
A =
1 至 7 列
47 58 69 80 1 12 23
57 68 79 9 11 22 33
67 78 8 10 21 32 43
77 7 18 20 31 42 53
6 17 19 30 41 52 63
16 27 29 40 51 62 64
26 28 39 50 61 72 74
36 38 49 60 71 73 3
37 48 59 70 81 2 13
8 至 9 列
34 45
44 46
54 56
55 66
65 76
75 5
4 15
14 25
24 35
>> sum(A,1) //对每列求和
ans =
1 至 7 列
369 369 369 369 369 369 369
8 至 9 列
369 369
>> sum(A,2) //对每行求和
ans =
369
369
369
369
369
369
369
369
369
>> eye(9) //生成单位矩阵
ans =
1 至 7 列
1 0 0 0 0 0 0
0 1 0 0 0 0 0
0 0 1 0 0 0 0
0 0 0 1 0 0 0
0 0 0 0 1 0 0
0 0 0 0 0 1 0
0 0 0 0 0 0 1
0 0 0 0 0 0 0
0 0 0 0 0 0 0
8 至 9 列
0 0
0 0
0 0
0 0
0 0
0 0
0 0
1 0
0 1
>> A .* eye(9)
ans =
1 至 7 列
47 0 0 0 0 0 0
0 68 0 0 0 0 0
0 0 8 0 0 0 0
0 0 0 20 0 0 0
0 0 0 0 41 0 0
0 0 0 0 0 62 0
0 0 0 0 0 0 74
0 0 0 0 0 0 0
0 0 0 0 0 0 0
8 至 9 列
0 0
0 0
0 0
0 0
0 0
0 0
0 0
14 0
0 35
>> flipud(eye(9)) //换个对角线
ans =
1 至 7 列
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 1
0 0 0 0 0 1 0
0 0 0 0 1 0 0
0 0 0 1 0 0 0
0 0 1 0 0 0 0
0 1 0 0 0 0 0
1 0 0 0 0 0 0
8 至 9 列
0 1
1 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
>> pinv(A) //自反矩阵
ans =
1 至 4 列
0.0005 -0.0012 0.0017 0.0126
0.0003 0.0003 0.0128 -0.0122
-0.0011 0.0140 -0.0120 0.0003
0.0126 -0.0120 0.0003 0.0003
-0.0108 0.0003 0.0003 0.0003
0.0003 0.0005 0.0001 -0.0011
0.0003 0.0003 0.0003 0.0005
0.0003 0.0003 -0.0011 0.0017
0.0003 0.0003 0.0003 0.0003
5 至 8 列
-0.0121 0.0003 0.0003 0.0003
0.0003 -0.0011 0.0017 0.0003
0.0005 0.0001 0.0003 0.0003
-0.0011 0.0017 0.0005 0.0001
0.0003 0.0003 0.0003 0.0003
0.0017 0.0003 0.0003 0.0126
0.0001 0.0003 0.0126 -0.0134
0.0003 0.0128 -0.0122 0.0003
0.0127 -0.0120 -0.0011 0.0018
9 列
0.0003
0.0003
0.0003
0.0003
0.0114
-0.0120
0.0017
0.0003
0.0001
>> A=magic(3)
A =
8 1 6
3 5 7
4 9 2
>> pinv(A)
ans =
0.1472 -0.1444 0.0639
-0.0611 0.0222 0.1056
-0.0194 0.1889 -0.1028
>> pinv(A)*A
ans =
1.0000 0.0000 -0.0000
-0.0000 1.0000 0.0000
0.0000 -0.0000 1.0000
>> t=[0:0.01:0.98]
t =
1 至 4 列
0 0.0100 0.0200 0.0300
5 至 8 列
0.0400 0.0500 0.0600 0.0700
9 至 12 列
0.0800 0.0900 0.1000 0.1100
13 至 16 列
0.1200 0.1300 0.1400 0.1500
17 至 20 列
0.1600 0.1700 0.1800 0.1900
21 至 24 列
0.2000 0.2100 0.2200 0.2300
25 至 28 列
0.2400 0.2500 0.2600 0.2700
29 至 32 列
0.2800 0.2900 0.3000 0.3100
33 至 36 列
0.3200 0.3300 0.3400 0.3500
37 至 40 列
0.3600 0.3700 0.3800 0.3900
41 至 44 列
0.4000 0.4100 0.4200 0.4300
45 至 48 列
0.4400 0.4500 0.4600 0.4700
49 至 52 列
0.4800 0.4900 0.5000 0.5100
53 至 56 列
0.5200 0.5300 0.5400 0.5500
57 至 60 列
0.5600 0.5700 0.5800 0.5900
61 至 64 列
0.6000 0.6100 0.6200 0.6300
65 至 68 列
0.6400 0.6500 0.6600 0.6700
69 至 72 列
0.6800 0.6900 0.7000 0.7100
73 至 76 列
0.7200 0.7300 0.7400 0.7500
77 至 80 列
0.7600 0.7700 0.7800 0.7900
81 至 84 列
0.8000 0.8100 0.8200 0.8300
85 至 88 列
0.8400 0.8500 0.8600 0.8700
89 至 92 列
0.8800 0.8900 0.9000 0.9100
93 至 96 列
0.9200 0.9300 0.9400 0.9500
97 至 99 列
0.9600 0.9700 0.9800
>> y1=sin(2*pi*4*t)
y1 =
1 至 4 列
0 0.2487 0.4818 0.6845
5 至 8 列
0.8443 0.9511 0.9980 0.9823
9 至 12 列
0.9048 0.7705 0.5878 0.3681
13 至 16 列
0.1253 -0.1253 -0.3681 -0.5878
17 至 20 列
-0.7705 -0.9048 -0.9823 -0.9980
21 至 24 列
-0.9511 -0.8443 -0.6845 -0.4818
25 至 28 列
-0.2487 -0.0000 0.2487 0.4818
29 至 32 列
0.6845 0.8443 0.9511 0.9980
33 至 36 列
0.9823 0.9048 0.7705 0.5878
37 至 40 列
0.3681 0.1253 -0.1253 -0.3681
41 至 44 列
-0.5878 -0.7705 -0.9048 -0.9823
45 至 48 列
-0.9980 -0.9511 -0.8443 -0.6845
49 至 52 列
-0.4818 -0.2487 -0.0000 0.2487
53 至 56 列
0.4818 0.6845 0.8443 0.9511
57 至 60 列
0.9980 0.9823 0.9048 0.7705
61 至 64 列
0.5878 0.3681 0.1253 -0.1253
65 至 68 列
-0.3681 -0.5878 -0.7705 -0.9048
69 至 72 列
-0.9823 -0.9980 -0.9511 -0.8443
73 至 76 列
-0.6845 -0.4818 -0.2487 -0.0000
77 至 80 列
0.2487 0.4818 0.6845 0.8443
81 至 84 列
0.9511 0.9980 0.9823 0.9048
85 至 88 列
0.7705 0.5878 0.3681 0.1253
89 至 92 列
-0.1253 -0.3681 -0.5878 -0.7705
93 至 96 列
-0.9048 -0.9823 -0.9980 -0.9511
97 至 99 列
-0.8443 -0.6845 -0.4818
>> plot(t,y1) //生成一个图
>> y2=cos(2*pi*4*t)
y2 =
1 至 4 列
1.0000 0.9686 0.8763 0.7290
5 至 8 列
0.5358 0.3090 0.0628 -0.1874
9 至 12 列
-0.4258 -0.6374 -0.8090 -0.9298
13 至 16 列
-0.9921 -0.9921 -0.9298 -0.8090
17 至 20 列
-0.6374 -0.4258 -0.1874 0.0628
21 至 24 列
0.3090 0.5358 0.7290 0.8763
25 至 28 列
0.9686 1.0000 0.9686 0.8763
29 至 32 列
0.7290 0.5358 0.3090 0.0628
33 至 36 列
-0.1874 -0.4258 -0.6374 -0.8090
37 至 40 列
-0.9298 -0.9921 -0.9921 -0.9298
41 至 44 列
-0.8090 -0.6374 -0.4258 -0.1874
45 至 48 列
0.0628 0.3090 0.5358 0.7290
49 至 52 列
0.8763 0.9686 1.0000 0.9686
53 至 56 列
0.8763 0.7290 0.5358 0.3090
57 至 60 列
0.0628 -0.1874 -0.4258 -0.6374
61 至 64 列
-0.8090 -0.9298 -0.9921 -0.9921
65 至 68 列
-0.9298 -0.8090 -0.6374 -0.4258
69 至 72 列
-0.1874 0.0628 0.3090 0.5358
73 至 76 列
0.7290 0.8763 0.9686 1.0000
77 至 80 列
0.9686 0.8763 0.7290 0.5358
81 至 84 列
0.3090 0.0628 -0.1874 -0.4258
85 至 88 列
-0.6374 -0.8090 -0.9298 -0.9921
89 至 92 列
-0.9921 -0.9298 -0.8090 -0.6374
93 至 96 列
-0.4258 -0.1874 0.0628 0.3090
97 至 99 列
0.5358 0.7290 0.8763
>> plot(t,y1);
>> hold on; //让上面生成的图不消失
>> plot(t, y2,'r') //这里生成的图加到上面去
>> xlabel('time') //x轴名字
>> ylabel('value') //y轴名字
>> legend('sin','cos') //提示sin是什么颜色,cos是什么颜色
>> title('my plot') //图的标题
>> print -dpng 'myplot.png' //生成图
>> close //关闭图
>> figure(1);plot(t,y1); //给每个图命名,同时不会被下面生成的图取代
>> figure(2);plot(t,y2);
>> close
>> close
>> subplot(1,2,1) //生成1X2的图,可进入第一个
>> plot(t,y1) //在第一个图里生成
>> subplot(1,2,2) //生成上述图,可进入第二个
>> plot(t,y2) //在第二个图里生成
>> close
>> subplot(1,2,1)
plot(t,y1)
subplot(1,2,2)
plot(t,y2)
>> axis([0.5 1,-1 1]) //前两个参数控制x的范围,后两个控制y的范围
>> clf; //清除图
>> A=magic(5)
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
>> imagesc(A) //有眼色标记的矩阵的图
>> imagesc(A),colorbar,colormap gray //调出colorbar同时将颜色调为灰色
>> v=zeros(10,1)
v =
0
0
0
0
0
0
0
0
0
0
>> for i=1:10,
v(i)=2^i;
end;
>> v
v =
2
4
8
16
32
64
128
256
512
1024
>> indices=1:10;
>> indices
indices =
1 至 7 列
1 2 3 4 5 6 7
8 至 10 列
8 9 10
>> for i=indices,
disp(i);
end;
1
2
3
4
5
6
7
8
9
10
>> v
v =
2
4
8
16
32
64
128
256
512
1024
>> i=1;
>> while i<=5,
v(i)=100;
i=i+1;
end;
>> v
v =
100
100
100
100
100
64
128
256
512
1024
>> v(1)=2;
>> if v(1)==1,
disp(v(1));
elseif v(1)==2,
disp('ufck pff');
else,
disp('co');
end;
ufck pff
>> hh(3) //在搜索路径里放置.m后缀的文件,里面生成函数,即可调用
ans =
9
>> A=magic(3)
A =
8 1 6
3 5 7
4 9 2
>> x=[1;2;3]
x =
1
2
3
>> A .* x
ans =
8 1 6
6 10 14
12 27 6
>> A*x
ans =
28
34
28
>> sum(A*x)
ans =
90
>> A(:,1:2)
ans =
8 1
3 5
4 9
>> A(1:3,1:2)
ans =
8 1
3 5
4 9
>> A/4
ans =
2.0000 0.2500 1.5000
0.7500 1.2500 1.7500
1.0000 2.2500 0.5000
>> A ./ 4
ans =
2.0000 0.2500 1.5000
0.7500 1.2500 1.7500
1.0000 2.2500 0.5000
>> log(A)
ans =
2.0794 0 1.7918
1.0986 1.6094 1.9459
1.3863 2.1972 0.6931
>> A .^ 2
ans =
64 1 36
9 25 49
16 81 4