临街小站

Matlab学习(三)

文件存储

.mat

在Matlab中,为了方便我们在之后的工作中随时进行中断的工作,我们可以在IDE中通过:

  1. 点击“文件(File)”下接菜单
  2. 选择“保存工作区为(Save Workspace As…)”
  3. 输入文件名
  4. 点击“保存(Save)”按钮

将当前工作状态保存为.mat文件,之后我们就可以随时、随地在任何安装Matlab软件的计算机上使用当前工作状态。

.m

有时候,特别是复杂工程,我们可能无法坐在一个地方把所有的表达式全部输进去。把很长的一系列命令保存到一个文件中,然后仅在命令窗口输入一个简单命令就能执行。这就是创建脚本文件。

脚本文件(script file)就能这样做了。这种类型的文件被称为MATLAB程序,以.M 为扩展名保存。因此,我们也称为 M 文件。我们也可以创建全是 函数(function)的 M 文件


  • 在IDE中点击New Script按钮,新建脚本文件

  • 输入以下示例代码

1
2
x = [1:2:3:4]; %x赋值为数组,元素之间以:或者;间隔
y = exp(x)
  • 保存为文件Untitled.m

  • 在Command Window中输入Untitled

  • 显示exp(x)结果2.7183 7.3891 20.0855 54.5982

向量

列向量

MATLAB 允许你创建列向量和行向量,列向量通过在方括号内把数值用分号(;)隔开来创建,对元素的个数没有限制。

例如,要创建一个含有三个元素的向量,我们写成:

1
2
3
4
5
6
7
8
9
10
11
12
13
a = [2; 1; 4]
a =
2
1
4

>> a*3

ans =

3
6
9

行向量

要创建行向量,我们仍然是把一组数值用方括号括起来,不过这次使用的分隔符是空格
(space)或逗号(,)。例如:

1
2
3
4
5
6
7
8
9
>> v = [2 0 4]

v =
2 0 4
% 或者使用逗号:
>> w = [1,1,9]

w =
1 1 9

转置

使用转置操作可以进行列向量与行向量之间的相互转换。

在 MATLAB 中,我们用单引号(’)代表转置操作,把列向量与行向量互相转换的例子为:

1
2
3
4
5
6
7
8
9
10
11
12
13
>> a = [2; 1; 4];
>> y = a'
y =
2 1 4

>> Q = [2 1 3]
Q =
2 1 3
>> R = Q'
R =
2
1
3

其他使用

1
2
3
4
5
6
7
8
9
10
>> A = [1; 4; 5];
>> B = [2; 3; 3];
>> D = [A;B]
D =
1
4
5
2
3
3

也可能使用行向量来创建新向量。要从带有 m 个元素的行向量 r 和带有 n 个元素的行向量 s 中创建带有 m+n 个元素的行向量 u,我们写成 u = [r, s]。例如:

1
2
3
4
5
>> R = [12, 11, 9];
>> S = [1, 4];
>> T = [R, S]
T =
12 11 9 1 4

等差元素vector

有时需要创建带有等差元素的向量,差值为q为一个实数。创建一个首元素为s,末元素为e的向量x的语法如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
x = [ s : q : e ]
>> x = [0:2:10]
x =
0 2 4 6 8 10


>> x = [0:0.1:1]

x =

Columns 1 through 10

0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000

Column 11

1.0000

这里要注意的是,在数组(包括行向量、列向量)使用幂函数、或者与其他向量一一运算时,与其他operator不同:

Inputs must be a scalar and a square matrix.
To compute elementwise POWER, use POWER (.^) instead.

也就是说需要在数组变量中加上.

1
2
3
4
5
6
7
8
9
10
11
>> y=x.^2

y =

Columns 1 through 10

0 0.0100 0.0400 0.0900 0.1600 0.2500 0.3600 0.4900 0.6400 0.8100

Column 11

1.0000

命令 length 返回向量中包含元素的个数

1
2
3
length(y)
ans=
11

向量乘

点乘

在MATLAB中,a、b两向量的点乘可以使用dot(a, b)命令计算。

两个向量点乘的结果是数量,也即是说,它只是一个数值。我们使用MATLAB计算一个简单的例子:

1
2
3
4
>> a = [1;4;7]; b = [2;-1;5];
>> c = dot(a,b)
c =
33

点乘可以用来计算向量的模,所需要的只是把向量同时传递给 dot 命令的两个参数。考
虑上一节的向量:
>> J = [0; 3; 4];
调用 dot 命令我们得到:

1
2
3
>> dot(J, J)
ans =
25

或者我们也可以用下面这种方式计算向量的模:

1
2
3
>> mag = sqrt(dot(J,J))
mag =
5

对于带有复数元素的向量,dot 操作也能正确计算:

1
2
3
4
>> u = [-i; 1 + i; 4 + 4*i];
>> dot(u, u)
ans =
35

叉乘

要计算向量的叉乘,这两个向量必须是的三维的

1
2
3
4
>> A = [1 2 3]; B = [2 3 4];
>> C = cross(A, B)
C =
-1 2 -1
clinjie wechat
Think about u every day