matlab中whos怎么用,【安富莱DSP教程】第3章 Matlab 简易使用(一)

第3章

Matlab 简易使用(一)

本期教程开始讲解Matlab的简易使用,作为学习DSP的必备软件,掌握简单的Matlab操作是必须的。

3.1 Matlab界面说明

3.2 矩阵和阵列

3.3 检索矩阵中的数据

3.4 工作区中的数据保存和加载

3.5 字符串

3.6 函数

3.7 绘图功能

3.8 总结

3.1

Matlab界面说明

a4c26d1e5885305701be709a3d33442f.png

lCurrentFolder

用于访问电脑中的文件。

lCommand Window

用于输入命令,公式计算等也可以在这里进行。

lWorkspace

浏览用户创建的数据或者从文件中导入的数据。

lCommand History

记录用户在command窗口输入的命令,双击这些历史命令可以返回到command窗口继续执行。

下面通过简单的例子说明一下command窗口的使用。

3.1.1简单计算

1.在command窗口输入变量a =1,然后回车,再次输入a,然后回车

a4c26d1e5885305701be709a3d33442f.png

第一次输入a = 1并回车后会将变量a及其数值加入到Workspace中。

第二次输入a 并回车后会将变量a以前的赋值显示出来。

3.1.2稍复杂计算

在command窗口输入以下计算

a4c26d1e5885305701be709a3d33442f.png

注意:上面输入一行后加入了分号,这个分号很重要,加上分号后再回车就可以输入下个计算。要不会输出计算结果。在需要获得结算结果的时候,就不再需要这个分号了,直接回车即可。

如果没有结果变量的话,输出会是ans = xxx(使用ans作为输出变量) 。

3.1.3历史命令行调用

历史命令行的调用除了可以在右下角的Command里面调用以外,还可以通过键盘上面的按键↑ 和 ↓实现历史命令的查询。

3.2

矩阵和阵列

Matlab的一个缩写就是"matrix laboratory"(矩阵实验室),虽然其它编程语言与数字一起工作,Matlab的主要设计是对整个矩阵和数组操作。

不管什么类型的数据,所有MATLAB的变量是多维数组,。矩阵是一个二维阵列通常用于线性代数。

3.2.1创建数组

下面在matlab中创建一个一行四列的数组,数组中的每个元素用逗号或者空格分开。比如创建数组

a4c26d1e5885305701be709a3d33442f.png

这种类型的数组也称为行向量。

下面创建一个多行的矩阵,不同的行用分号隔开

a4c26d1e5885305701be709a3d33442f.png

当然,也可以使用Matlab自带的函数进行创建,比如ones,zeros,rand等

a4c26d1e5885305701be709a3d33442f.png

3.2.2矩阵和阵列运算

MATLAB允许客户使用一个单一的算术运算符或函数来处理所有在矩阵中的值。比如:

a4c26d1e5885305701be709a3d33442f.png

下面继续说一下matlab矩阵的转置,求逆矩阵。

a4c26d1e5885305701be709a3d33442f.png

1.给矩阵a加上符号a'用于求逆矩阵。

2.inv()用于求逆矩阵。

3.矩阵a乘以a的逆矩阵就是求单位矩阵。

注意上面的a*inv(a)得到的结果已经不再是整数矩阵,Matlab存储结果的时候会以浮点的形式进行存储,Matlab实际存储的数值和当前命令窗口显示的数值是有区别的。为了获得更高的显示精度可以使用下面的数据格式

a4c26d1e5885305701be709a3d33442f.png

执行逐个元素乘法,而不是矩阵的乘法可以使用符号 .* 来实现

>> a.*a

ans =

1 4 9

16 25 36

49 64 100

下面是实现矩阵各个元素的3次方

>> a.*a

ans =

1 4 9

16 25 36

49 64 100

3.2.3矩阵的合并

矩阵的合并主要有以下两种形式:

>>A = [a,a]

A =

1 2 3 1 2 3

4 5 6 4 5 6

7 8 10 7 8 10

>>A = [a; a]

A =

1 2 3

4 5 6

7 8 10

1 2 3

4 5 6

7 8 10

3.2.4复数

复数的表示是由实部和虚部组成的,比如我们在matlab命令窗口输入:

>>sqrt(-1)

ans =

0 + 1.0000i

为了表示复数的虚部,可以使用i或者j来表示:

>>c = [3+4i,4+3j,-i,10j]

c =

3.0000 + 4.0000i 4.0000 + 3.0000i 0 - 1.0000i 0 +10.0000i

3.3

检索矩阵中的数据

有时矩阵中的元素比较多,为了方便用户可以检索矩阵中所需要查找的元素,调用相关命令即可。比如:先用magic函数生成4阶幻方矩阵:

>>A = magic(4)

A =

16 2 3 13

5 11 10 8

9 7 6 12

4 14 15 1

l如果我们要获得第4行第2列的数据,可以采用如下的方法:

>>A(4,2)

ans =

14

l简单点,也可以使用如下方法进行定位:

>>A(8)

ans =

14

l如果检索超出了矩阵的范围,会报错,如下:

>> test = A(4,5)

Attempted to access A(4,5); index out of bounds becausesize(A)=[4,4].

l用户可以通过如下方法增加行和列

>> A(5,5) = 14

A =

16 2 3 13 0

5 11 10 8 0

9 7 6 12 0

4 14 15 1 0

0 0 0 0 14

l用户可以通过如下方法访问某行某列的某些数据

>> A(1:3,2)

ans =

2

11

7

>> A(3,:)

ans =

9 7 6 12 0

l使用冒号运算符,用户可以获得一个等间距序列,冒号隔开的数值分别表示:start:step:end

>> B = 0:10:100

B =

Columns 1 through 10

0 10 20 30 40 50 60 70 80 90

Column 11

100

如果不设置step,那么输出结果默认步是1。

3.4

工作区中的数据保存和加载

工作区中的变量来自用户创建,外部数据加载或者其它的编程加入。比如我们在命令窗户输入以下两个函数。

>> A = magic(4);

B = rand(3,5,2);

通过命令whos可以查看工作区中的变量内容。

>> whos

Name Size Bytes Class Attributes

A 4x4 128 double

B 3x5x2 240 double

工作区中的变量如下,和通过命令whos查看的效果是一样的。

a4c26d1e5885305701be709a3d33442f.png

如果用户退出Matlab后,再次进入工作区中,那么里面的数据变量将被清空。如果想保持这些变可以

通过如下命令进行保存:

>> save myfile.mat

下次打开MATLAB可以通过如下命令加载这些变量:

>>load myfile.mat

另外用户可以通过命令clear清除当前工作区中的变量。

3.5

字符串

l在matlab中显示字符串跟使用C不一样,matlab中使用单引号即可。比如:

>> myText = 'Hello, world'

myText =

Hello, world

>> otherText = 'You''re right'%特别的注意这里,显示单引号需要写两个才可以。

otherText =

You're right

>> whos

Name Size Bytes Class Attributes

myText 1x12 24 char

otherText 1x12 24 char

l如果想合并两个字符串可以用如下的方法:

>> longText = [myText,' - ',otherText]

longText =

Hello, world - You're right

l如果想把数字转换成字符串显示,可以用函数num2str或者int2str.

>> f = 71;

c = (f-32)/1.8;

tempText = ['Temperature is ',num2str(c),'C']

tempText =

Temperature is 21.6667C

3.6

函数

MATLAB支持的函数非常多,下面举一个简单的例子说明下,后面具体用到那个函数查阅手册即可。

>> A = [1 3 5];

B = [10 6 4];

>> max(A)%求最大值

ans =

5

>> max(A,B)%求A,B中的最大值

ans =

10 6 5

>> maxA = max(A)%将最大值付给maxA

maxA =

5

>> [maxA,location] = max(A)%将最大值和次最大值赋给两个变量

maxA =

5

location =

3

l显示任何字符串可以调用函数:

>> disp('hello armfly')

hello armfly

l命令窗口数据的清除可以使用命令

>>clc

3.7

绘图功能

Matlab的绘图功能非常强劲,下面分别简单介绍下。

3.7.1画线

下面使用绘图功能创建一个二维图:

>> x = 0:pi/100:2*pi;

y = sin(x);

plot(x,y)

a4c26d1e5885305701be709a3d33442f.png

通过如下函数可以给绘图加上标题:

>> x = 0:pi/100:2*pi;

y = sin(x);

plot(x,y);

xlabel('x');

ylabel('sin(x)');

title('Plot of the Sine Function')

a4c26d1e5885305701be709a3d33442f.png

通过函数plot(x,y,'r--')可以改变曲线的颜色和显示方式。

a4c26d1e5885305701be709a3d33442f.png

如果想把两个波形显示在一个图中,可以采用函数hold on,如下所示:

>> x = 0:pi/100:2*pi;

y = sin(x);

plot(x,y)

hold on

y2 = cos(x);

plot(x,y2,'r:')

legend('sin','cos')

a4c26d1e5885305701be709a3d33442f.png

3.7.23-D绘图

Matlab也支持3-D绘图,下面举一个简单的例子,主要是为了说明显示效果。

>> [X,Y] = meshgrid(-2:.2:2);

Z = X .* exp(-X.^2 - Y.^2);

surf(X,Y,Z)

a4c26d1e5885305701be709a3d33442f.png

3.7.3多个子图的绘制

Matlab也支持在一幅图中绘制多个子图片,主要是通过函数subplot实现。

>> t = 0:pi/10:2*pi;

[X,Y,Z] = cylinder(4*cos(t));

subplot(2,2,1); mesh(X); title('X');

subplot(2,2,2); mesh(Y); title('Y');

subplot(2,2,3); mesh(Z); title('Z');

subplot(2,2,4); mesh(X,Y,Z); title('X,Y,Z');

a4c26d1e5885305701be709a3d33442f.png

3.8

总结

本期主要跟大家讲解了Matlab的简单使用方法,后面复杂的使用需要大家多查手册,多练习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值