matlab 向量_纯小白Matlab学习手册重磅公布,入门必备!

23717c01c9cab1bb9f5feb6ec5dc3aa1.png

点击蓝字关注我们

Matlab 简介

1. 指令行的编辑

启动Matlab 后,就可以利用Matlab 工作。由于Matlab 是一种交互式语言,随时输入指令,即时给出运算结果是它的工作方式。

2*sin(0.3*pi)/(1+sqrt(5)) ↵

ans=0.5000 

(ans 是一个保留的 Matlab 字符串,它表示上面一个式子的返回结果,用于结果的缺省变量名)

2. 入门演示

intro↵ demo↵ 

3. 帮助

① help↵ %帮助总揽 help elfun↵ %关于基本函数的帮助信息 help exp↵ %指数函数 exp 的详细信息

② lookfor 指令

当要查找具有某种功能但又不知道准确名字的指令时,help 的能力就不够了,lookfor可以根据用户提供的完整或不完整的关键词,去搜索出一组与之相关的指令。 

lookfor integral↵ %查找有关积分的指令

lookfor fourier↵ %查找能进行傅利叶变换的指令 

③ 超文本格式的帮助文件

在Matlab 中,关于一个函数的帮助信息可以用 doc 命令以超文本的方式给出,

如:

doc↵

doc doc↵

doc eig↵ %eig 求矩阵的特征值和特征向量 ④ pdf 帮助文件

4. 简单的矩阵输入

① 要直接输入矩阵时,矩阵元素用空格或逗号分隔矩阵行用分号“;”隔离,整个矩阵放在方括号“[ ]”里。

A=[1,2,3;4,5,6;7,8,9]↵

说明:指令执行后,矩阵A 被保存在 Matlab 的工作间(workspace)中,以备后用。如果用户不用 clear 指令清除它,或对它进行重新赋值,那末该矩阵会一直保存在工作间中,直到本 Matlab 指令窗关闭为止。 

② 矩阵的分行输入

A=[1,2,3 

    4,5,6

    7,8,9]

5. 语句与变量

 ① Matlab 语句有两种最常见的形式

i) 表达式 

ii)变量=表达式

[例1] 表达式的计算结果 1996/18↵

ans=110.8889

[例2] 计算结果的赋值

s=1-1/2+1/3-1/4+1/5-1/6+... 1/7-1/8;↵

说明

✔三个小黑点是“连行号”,

✔分号“;”作用是:指令执行结果将不显示在屏幕上,但变量 s 将驻留在内存中。

✔若用户想看 s 的值,可键入以下命令:

s↵ 

(s=

0.6345)

② 特殊变量

ans 用于结果的缺省变量名

pi 圆周率

eps 计算机的最小数

flops 浮点运算次数 

inf 无穷大 如 1/0

NaN 不定量 如 0/0

i(j) 927d06b33fb10e1ef4bfe759c2baaf4b.png

nargin 所用函数的输入变量数目

nargout 所用函数的输出变量数目

realmin 最小可用正实数 realmax 最大可用正实数

6. 数据结构:向量、矩阵、结构数组和细胞数组

①向量的转置

z=[1+j,2+pi*i,-sqrt(-1)]’

z =

1.0000 - 1.0000i 

2.0000 - 3.1416i 

             0 + 1.0000i

当对复数向量进行转置操作时,可以得到其共轭转置向量。

z.' (非共轭转置向量)

②产生一个行向量

t=[0:0.1:10]  %产生从 0 到 10 的行向量,元素之间间隔为 0.1

t=linspace(n1,n2,n)

%产生 n1 和 n2 之间线性均匀分布的 n 个数 (缺省 n 时,产生 100 个数)

t=logspace(n1,n2,n) (缺省 n 时,产生 50 个点)

③ who,whos,size 和 length 是对提供工作空间变量信息很有用处的四个命令。

who 执行该命令可列出储存空间的所有变量

whos 显示所有的变量,变量所占的字节数及该变量是否是实数

size(a) 执行该命令可以得到矩阵 a 的行数与列数

length(a)执行该命令后,屏幕上显示出向量 a 的长度。如果 a 是矩阵,则显示的参数为行数列数中的最大数。 

④ 矩阵的标号

A(m,n)表示矩阵 A 的第 m 行,第 n 列的元素;

A(1:2,1:3)表示矩阵 A 的从第一行到第二行,从第一列到第三列的所有元素;

A(:) 可以得到一个长向量,该向量的元素是按列一一叠加在一起的。例如 a=[1 2;3 4];a(:)↵

ans=

1

3

2

4

矩阵的下标也可以是向量。例如

b=a(x,y)↵; 可以得到一个矩阵 b。a 的行标来自向量 x,而列标来自向量 y。

例如,矩阵 a 有 n 列,那么

b=a(:,n:-1:1)

将使矩阵 a 按列的逆序排列。

⑤ 特殊矩阵

i)单位矩阵

eye(m),eye(size(a)) 可以得到与矩阵 a 同样大小的单位矩阵,eye(m,n)可得到一个可允许的最大单位矩阵而其余处补 0。

ii)所有元素为 1 的矩阵 

ones(n),ones(size(a)),ones(m,n)

iii)所有元素为 0 的矩阵 

zeros(n),zeros(m,n)

iv)空矩阵是一个特殊矩阵,这在线性代数中是不存在的。 

例如: q=[ ]

矩阵 q 在工作空间之中,但它的大小为零。通过空阵的办法可以删去行与列。

例如

a=rand(5);a(:,1:3)=[]

第一条指令执行后得到一个5×5 的矩阵;第二条指令将矩阵 a 的前三列删除。

v) 对角矩阵

当 v 是向量时,diag(v)得到以 v 的元素为对角线上元素的对角矩阵;

当 v 是矩阵时,diag(v) 得到一个列向量,其元素为矩阵 v 对角线上的元素,diag(v,1)得到矩阵 v 对角线上移一行的元素组成的列向量,diag(v,-1)得到矩阵 v 对角线下移一行的元素组成的列向量。

⑥ 字符串要用单引号

例如:

disp('text string')       % disp 显示命令

还 有 几 个 字 符 串 命 令 可 以 作 为 文 字 说 明 和 绘 图 标 题 说 明 等 , 如  num2str,int2str,fprintf 和 sprintf。同样,可以借助于 help 命令了解它们的具体用法。

⑦ 结构数组

有时需要将不同的数据类型组合成一个整体,以便于引用。这些组合在一个整体中的数据是相互联系的。例如,一个学生的学号、姓名、性别、年龄、成绩、家庭地址等项都是和该学生有联系的。

下面简单介绍结构体的定义与引用。

i)结构数组的定义

定义结构数组可以采用两种方法:用赋值语句定义和用函数 struct 定义。

—— 2f4b2df9ee95e9c6265c287734e6e984.png赋值语句 ——

用赋值语句定义结构时,只要给出结构的属性赋值,Matlab 就会自动把该属性增加到结构中,赋值时,结构名和属性名用“.”分开。

例如,下面三条语句将定义一个1×1 的结构数组,结构名为 student,有三个属性:name、num、test。该结构数组只有一 个元素,在命令窗口中键入结构名student,将显示该元素所有属性的属性值的特性。 

student.name='John Doe';

student.num=123456;

student.test=[79 75 73;80 78 79;90 85 80]; 

再键入以下三行可给该结构数组增加一个元素。student(2).name='Ann Lane'; student(2).num=123422;

student(2).test=[70 76 73;80 99 79;90 85 80;80 85 86];

现在结构数组 student 的维数为1× 2 。当结构数组的元素超过 1 个时,MATLAB 的 帮助信息中,不再显示不同属性的值,而只显示数组名、属性名和维数大小。

—— 2f4b2df9ee95e9c6265c287734e6e984.png函数 struct  ——

函数 struct 也可用来定义结构数组,其调用格式为: 

结构数组名=struct(‘属性 1’,’属性值 1’, ‘属性 2’,’属性值 2’,…)

ii)结构数组属性值的修改、设置和获取结构数组一旦形成,就可取出数组中的某个元素并修改该元素的某个属性的值。以上面建立的 student 数组为例,命令 

str=student(2).name

可取出第二个元素的 name 属性的值。 

命令

n=student(2).test(4,2)

取出第二个元素 test 的值中第四行第二列上的数。 同理,可用命令

student(2).test(4,2)=0

修改第二个元素 test 的值中第四行第二列上的数的值。

关于结构数组有如下函数:

d85cfede41d9b564ad3e938917a313fd.png 7628132713ca5bd6e26ea0652736424b.png

⑧ 细胞数组

细胞数组也是 MATLAB 里的一类特殊的数组。在 MATLAB 里,由于有细胞数组这个数据类型,才能把不同类型、不同维数的数组组成为一个数组。

细胞数组的每一个元素可为类型不同、维数不同的矩阵、向量、标量或多维数组, 所有元素用大括号括起来。如矩阵 A=[1 2 3 4;2 3 4 5;3 4 5 6],则命令 c={A,sum(A),sum(sum(A))}得到一个1×3的细胞数组。

关于细胞数组有如下函数:

7f8a50cb779b93bf8fc71de753b04cd7.png

i)细胞数组的生成

▪ 有两种方法可以生成细胞数组:用赋值语句直接生成;先用 cell 函数预分配数组,然后再对每个元素赋值。

▪ 有两种方法可对元素赋值:一种方法采用数组元素的下标赋值。下面四句命令将建 立一个2× 2 的细胞数组。

A(1,1)={[1:5;6:10]}; 

A(1,2)={'Anne cat'};

A(2,1)={3+7i};

A(2,2)={0:pi/10:pi};

在大括号中,逗号或者空格表示每行元素之间的分割,分号表示不同行之间的分割。 

另一种方法则把细胞数组的元素用大括号括起来,而所赋的值采用其它数组的形式。例如下面四句生成的细胞数组和上面所生成的完全一样。

A{1,1}=[1:5;6:10];

A{1,2}='Anne cat';

A{2,1}=3+7i;

A{2,2}=0:pi/10:pi;

命令 B=cell(3,4)

创建一个3× 4的细胞矩阵。

ii)细胞数组内容的查看

对于上面建立的数组 A,在 Matlab 命令窗口键入变量名 A,将显示数组的简要信息。 

函数 celldisp 用来显示细胞数组的每个元素的值。函数 cellplot 将画出细胞数组的每个元素的结构图。

当给已经定义的细胞数组下标范围外的元素赋值时,Matlab 自动扩维,对于没有赋值的元素,赋值为空矩阵。

•  END  •

▌相关推荐——

模友的Matlab笔记重磅公开!建模小白先从这里开始!

Matlab R2020a软件安装破解教程

MATLAB R2020a Mac(苹果版本)版安装激活教程

469af535e654299fe53777e216f26e4a.png 4cd6ed294d1cd59c38d5b70b2d581c99.png

扫码关注我们

b6275e3240d6dddd1e96b7551bb62649.png

2020夏令营QQ交流群

模友们可能已经发现:现在公众号推送文章的顺序,已经不会按时间排列了。这种变化,可能会让各位模友错过我们每天的推送。

所以,如果你还想像往常一样,聚焦数模乐园,就需要将“数模乐园”标为星标公众号,同时在阅读完文章后,别忘了给一个“在看”哦。

星标步骤

(1)点击页面最上方“数模乐园”,进入公众号主页

(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。

c7c6a0bb1b2cc7b482262d75f29867fa.gif 076aff54258c82b981e966011c9d518e.gif

球分享

076aff54258c82b981e966011c9d518e.gif

球点赞

076aff54258c82b981e966011c9d518e.gif

球在看

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值