精通MATLAB科学计算(第3版)(王正林)02-3r.pdf
《精通MATLAB科学计算(第3版)(王正林)02-3r.pdf》由会员分享,可在线阅读,更多相关《精通MATLAB科学计算(第3版)(王正林)02-3r.pdf(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 章 MATLAB基 本 运 算 入 门 MATLAB是 一 门 计 算 语 言,它 的 运 算 指 令 和 语 法 基 于 一 系 列 基 本 的 矩 阵 运 算 以 及 它 们 的 扩 展 运 算,它 还 支 持 复 数 这 一 数 值 元 素,这 也 是 MATLAB区 别 于 其 他 高 级 语 言 的 最 大 特 点 之 一,它 给 许 多 领 域 的 计 算 都 带 来 了 极 大 方 便。2.1 MATLAB数 值 类 型 MATLAB包 括 4 种 基 本 数 据 类 型,即 双 精 度 数 组、字 符 串 数 组、元 胞 数 组 和 构 架 绩 超 数 组。数 值 之 间
2、可 以 相 互 转 化,这 为 其 计 算 功 能 开 拓 了 广 阔 的 空 间。1.变 量 与 常 量 变 量 是 数 值 计 算 的 基 本 单 元。与 C 语 言 等 其 他 高 级 语 言 不 同,MATLAB语 言 中 的 变 量 无 需 事 先 定 义,一 个 变 量 以 其 名 称 在 语 句 命 令 中 第 一 次 合 法 出 现 而 定 义,运 算 表 达 式 变 量 中 不 允 许 有 未 定 义 的 变 量,也 不 需 要 预 先 定 义 变 量 的 类 型,MATLAB会 自 动 生 成 变 量,并 根 据 变 量 的 操 作 确 定 其 类 型。1)MATLAB变
3、量 命 名 规 则 MATLAB中 的 变 量 命 名 规 则 如 下:(1)变 量 名 区 分 大 小 写,因 此 A 与 a 表 示 的 是 不 同 的 变 量。(2)变 量 名 以 英 文 字 母 开 始,第 一 个 字 母 后 可 以 使 用 字 母、数 字、下 划 线,但 不 能 使 用 空 格 和 标 点 符 号。(3)变 量 名 长 度 不 得 超 过 3 1位,超 过 的 部 分 将 被 忽 略。(4)某 些 常 量 也 可 以 作 为 变 量 使 用,如 i 在 MATLAB中 表 示 虚 数 单 位,但 也 可 以 作 为 变 量 使 用。常 量 是 指 那 些 在 MAT
4、LAB中 已 预 先 定 义 其 数 值 的 变 量,默 认 的 常 量 如 表 2.1所 示。表 2.1 MATLAB默 认 常 量 名 称 说 明 名 称 说 明 P*圆 周 率 cps 浮 点 数 的 相 对 误 差 1NF(或 in f)无 穷 大 i(或 j)虚 数 单 位,定 义 为 QNaN(或 nan)代 表 不 定 值(即 0/0)nargin 函 数 实 际 输 入 参 数 个 数 real man 最 大 的 正 实 数 nargout 函 数 实 际 输 出 参 数 个 数精 通 MATLAB科 学 计 算(第 2 蚪 realmix 最 小 的 正 实 数 ANS(或
5、 ans)默 认 变 量 名,以 应 答 最 近 一 次 操 作 运 算 结 果 18 第 2 章 M A T L A B 基 本 运 算 2)M A T L A B 变 量 的 显 示 任 何 M A T L A B 语 句 的 执 行 结 果 都 可 以 在 屏 幕 上 显 示,同 时 赋 值 给 指 定 的 变 量,没 有 指 定 变 量 时,赋 值 给 一 个 特 殊 的 变 量 ans,数 据 的 显 示 格 式 由 format命 令 控 制。format只 影 响 结 果 的 显 示,不 影 响 其 计 算 与 存 储。M A T L A B 总 是 以 双 字 长 浮 点 数(
6、双 精 度)来 执 行 所 有 的 运 算。如 果 结 果 为 整 数,则 显 示 没 有 小 数;如 果 结 果 不 是 整 数,则 输 出 形 式 有 表 2.2所 示 的 几 种 形 式。表 2.2 MATLAB的 数 据 显 示 格 式 格 式 含 义 格 式 含 义 format(short)短 格 式(5 位 定 点 数)format long e 长 格 式 e 方 式 fbnnat long 长 格 式(1 5位 定 点 数)format bank 2 位 十 进 制 格 式 format short e 短 格 式 c 方 式 format hex 十 六 进 制 格 式 3
7、)M A T L A B 变 量 的 存 取 工 作 空 间 中 的 变 量 可 以 用 save命 令 存 储 到 磁 盘 文 件 中。键 入 命 令 save 文 件 名”,将 工 作 空 间 中 全 部 变 量 存 到“文 件 名.mat”文 件 中 去,若 省 略“文 件 名”则 存 入 文 件“matlab.mat”中;命 令 savev文 件 名 变 量 名 集”将“变 量 名 集”指 出 的 变 量 存 入 文 件“文 件 名.mat”中。用 10ad命 令 可 将 变 量 从 磁 盘 文 件 读 入 M A T L A B 的 工 作 空 间,其 用 法 为“load 文 件
8、名 它 将“文 件 名”指 出 的 磁 盘 文 件 中 的 数 据 依 次 读 入 名 称 与“文 件 名”相 同 的 工 作 空 间 中 的 变 量 中 去。若 省 略“文 件 名 则“matlab.mat”从 中 读 入 所 有 数 据。用 clear命 令 可 以 从 工 作 空 间 中 清 除 现 存 的 变 量。2.字 符 串 字 符 是 M A T L A B 中 符 号 运 算 的 基 本 元 素,也 是 文 字 等 表 达 方 式 的 基 本 元 素,在 M A T L A B 中,字 符 串 作 为 字 符 数 组 用 单 引 号)引 用 到 程 序 中,还 可 以 通 过
9、字 符 串 运 算 组 成 复 杂 的 字 符 串。字 符 串 数 值 和 数 字 数 值 之 间 可 以 进 行 转 换,也 可 以 执 行 字 符 串 的 有 关 操 作。3.元 胞 数 组 元 胞 是 元 胞 数 组(Cell Array)的 基 本 组 成 部 分。元 胞 数 组 与 数 字 数 组 相 似,以 下 标 来 区 分,单 元 胞 数 组 由 元 胞 和 元 胞 内 容 两 部 分 组 成。用 花 括 号 表 示 元 胞 数 组 的 内 容,用 圆 括 号 0 表 示 元 胞 元 素。与 一 般 的 数 字 数 组 不 同,元 胞 可 以 存 放 任 何 类 型、任 何 大
10、 小 的 数 组,而 且 同 一 个 元 胞 数 组 中 各 元 胞 的 内 容 可 以 不 同。【例 2-1】元 胞 数 组 创 建 与 显 示 实 例。19精 通 MATLAB科 学 计 算(第 2 版 i-解:MATLAB程 序 代 码 如 下。A(1,1)=An example of cell array*;A(l,2)=1 2;3 4;A2,l=tf(1,1,8);A2,2=A(1,2);This is anexample,;celldisp(A)号 显 示 该 元 胞 数 组 元 胞 数 组 A 第 1行 用 元 胞 数 组 标 志 法 建 立 一 个 字 符 串 和 一 个 矩
11、阵;第 2 行 用 元 胞 内 容 编 址 法,建 立 一 个 传 递 函 数 和 一 个 由 两 个 元 素 组 成 的 元 胞 组,该 元 胞 组 分 别 是 矩 阵 和 字 符 串,最 后,用 celldisp函 数 显 示 该 元 胞 数 组 Ao4.构 架 结 构 数 组 与 元 胞 数 组 相 似,构 架 结 构 数 组(Structure Array)也 能 存 放 各 类 数 据,使 用 指 针 方 式 传 递 数 值。构 架 绩 跑 数 组 由 结 构 变 量 名 和 属 性 名 组 成,用 指 针 操 作 符 连 接 结 构 变 量 名 和 属 性 名。例 如,可 用 pa
12、rameter.temperature表 示 某 一 对 象 的 温 度 参 数,用 parameter.humidity表 示 某 一 对 象 的 湿 度 参 数 等,因 此,该 构 架 结 构 数 组 parameter由 两 个 属 性 组 成。5.对 象 面 向 对 象 的 MATLAB语 言 采 用 了 多 种 对 象,如 自 动 控 制 中 常 用 的 传 递 函 数 模 型 对 象(tf object 状 态 空 间 模 型 对 象(ss object)和 零 极 点 模 型 对 象(zpk object),一 些 对 象 之 间 可 以 相 互 转 换,例 如,可 以 从 传
13、递 函 数 模 型 对 象 转 化 为 零 极 点 模 型 对 象 等。2.2 关 系 运 算 和 逻 辑 运 算 除 了 传 统 的 数 学 运 算 外,MATLAB还 支 持 关 系 运 算 和 逻 辑 运 算。如 果 你 已 经 有 了 一 些 编 程 经 验,那 对 这 些 运 算 不 会 陌 生。这 些 操 作 符 和 函 数 的 目 的 是 提 供 求 解 真/假 命 题 的 答 案。关 系 运 算 和 逻 辑 运 算 主 要 用 于 控 制 基 于 真/假 命 题 的 各 MATLAB命 令(通 常 在 M 文 件 中)的 流 程 或 执 行 次 序。作 为 所 有 关 系 表
14、达 式 和 逻 辑 表 达 式 的 输 入,MATLAB把 任 何 非 0 数 值 都 当 做 真,把 0当 做 假。所 有 关 系 表 达 式 和 逻 辑 表 达 式 的 输 出,对 于 真 输 出 为 1,对 于 假 输 出 为 0。MATLAB为 关 系 运 算 和 逻 辑 运 算 提 供 了 关 系 操 作 符 和 逻 辑 操 作 符,如 表 2.3和 表 2.4所 示。表 2.3 关 系 运 算 符 符 号 功 能 符 号 功 能=大 于 等 于 大 于=不 等 于 20 第 章 MATLAB基 本 运 算 表 2.4 逻 辑 运 算 符 符 a功 能 符 a功 能&逻 辑 与 逻
15、辑 非 I逻 辑 或 此 外,MATLAB还 提 供 了 若 干 关 系 运 算 函 数 和 逻 辑 运 算 函 数,分 别 如 表 2.5和 表 2.6所 示。表 2.5 关 系 运 算 函 数 函 数 名 功 能 函 数 名 功 能 all 所 有 向 量 为 非 零 元 素 时 为 真 xor 逻 辑 异 或 运 算 any 任 一 向 量 为 非 零 元 素 时 为 真 表 2.6 逻 辑 运 算 函 数 函 数 名 功 能 函 数 名 功 能 Brtaftdbitand 位 方 式 的 逻 辑 与 运 算 BitcmpbitcniD 位 比 较 运 算 B to b ito r 位
16、方 式 的 逻 辑 或 运 算 Bilnwxbiimax 最 大 无 符 号 浮 点 整 数 Btfxefbitxor 位 方 式 的 逻 辑 异 或 运 算 将 二 进 制 移 位 运 算 2.3 矩 阵 及 其 运 算 MATLAB软 件 的 最 大 特 色 是 强 大 的 矩 阵 计 算 功 能,在 MATLAB软 件 中,所 有 的 计 算 都 是 以 矩 阵 为 单 元 进 行 的,可 见 矩 阵 是 MATLAB的 核 心。表 2.7列 出 MATLAB提 供 的 每 类 矩 阵 运 算 的 函 数,并 各 举 一 个 实 例 进 行 说 明,同 类 函 数 的 用 法 基 本 类
17、 似,详 细 的 用 法 及 函 数 内 容 说 明 可 参 考 联 机 帮 助。2.3.1 矩 阵 的 创 建 由 他 行 列 构 成 的 数 组。称 为?X”阶 矩 阵,它 总 共 由 W X 个 元 素 组 成,矩 阵 元 素 记 为 劭,其 中 i 表 示 行,)表 示 列。当 机=时,矩 阵。称 为 方 阵。当 i x j 时,所 有 的 旬=0,且 机=,得 到 的 矩 阵 称 为 对 角 阵。当 对 角 阵 的 对 角 线 上 的 元 素 全 为 1时,称 为 单 位 阵,记 为/o对 于(?x)阶 矩 阵 w,当 w,j=。户 时,称 w 是。的 转 置 矩 阵,记 为 w=a
18、。对 于“为(m x l)的 形 式 时,称。是 机 个 元 素 的 列 向 量,对 于。为(l x”)的 形 式 时,称“是 个 元 素 的 行 向 量。矩 阵 的 表 现 形 式 和 数 组 相 似,它 以 左 方 括 号 T 开 始,以 右 方 括 号 T 结 束,每 一 行 元 素 结 束 用 行 结 束 符 号(分 号;)或 回 车 符 分 割,每 个 元 素 之 间 用 元 素 分 割 符 号(空 格 或“;)分 21精 通 MATLAB科 学 计 算(第 2 版 i-隔。建 立 矩 阵 的 方 法 有 直 接 输 入 矩 阵 元 素、在 现 有 矩 阵 中 添 加 或 删 除 元
19、 素、读 取 数 据 文 件、采 用 现 有 矩 阵 组 合、矩 阵 转 向、矩 阵 移 位 及 直 接 建 立 特 殊 矩 阵 等。【例 2-2】矩 阵 创 建 实 例。解:MATLAB程 序 代 码 如 下。a=l 2 3;4 5 6运 行 结 果 是 创 建 了 一 个 2 x 3的 矩 阵 a,a 的 第 1行 由 1、2、3 这 3 个 元 素 组 成,第 2行 由 4、5、6 这 3 个 元 素 组 成,输 出 结 果 如 下:a=1 2 34 5 6接 着 输 入:b=a;11,12,1 3 南 添 加 一 行 元 素(11,12,13运 行 结 果 是 创 建 了 一 个 3
20、x 3的 矩 阵 b b 矩 阵 是 在 a 矩 阵 的 基 础 上 添 加 一 行 元 素 11、12、13,组 成 一 个 3 x 3矩 阵,输 出 结 果 如 下:b=1 2 34 5 611 12 13MATLAB中 对 矩 阵 元 素 的 访 问 如 下 所 示:单 个 元 素 的 访 问:b(3,2)-12,访 问 了 第 3 行 和 第 2 列 交 叉 的 元 素;整 列 元 素 的 访 问:b(:,3)f3,6,1 3,访 问 了 第 3 列 中 的 所 有 元 素;整 行 元 素 的 访 问:b(l,:)-l,2,3,访 问 了 第 1行 中 的 所 有 元 素;整 块 元
21、素 的 访 问:b(2:3,2:3)-5,6;12,1 3,访 问 了 一 个(2 2)的 子 块 矩 阵。MATLAB提 供 了 很 多 个 特 殊 矩 阵 的 生 成 函 数,表 2.7列 出 了 一 些 常 用 的 生 成 函 数,关 于 其 他 的 特 殊 矩 阵 生 成 函 数 及 使 用 格 式,请 参 见 联 机 帮 助。表 2.7 MATLAB常 用 特 殊 矩 阵 生 成 函 数 函 数 功 能 说 明 函 数 功 能 说 明 zeros()生 成 元 素 全 为 0 的 矩 阵 tril()生 成 下 三 角 矩 阵 ones()生 成 元 素 全 为 1的 矩 阵 eye
22、()生 成 单 位 矩 阵 rand()生 成 均 匀 分 布 随 机 矩 阵 company()生 成 伴 陵 矩 阵 randn()生 成 正 态 分 布 随 机 矩 阵 hilb()生 成 Hilbert矩 阵 magic()生 成 魔 方 矩 阵 vander()生 成 vander矩 阵 diag()生 成 对 角 矩 阵 hankcl()生 成 hankcl矩 阵 triu()生 成 上 三 角 矩 阵 hadamard()生 成 hadamard矩 阵【例 2-3】特 殊 矩 阵 生 成 函 数 使 用 实 例。22 第 2 章 MATLAB基 本 运 算 解:MATLAB程 序
23、 代 码 如 下。a=l,2,3;4,5,6;7,8,9;b=tril(a)5生 成 下 三 角 矩 阵 运 行 结 果 是 生 成 了 b矩 阵,它 是 调 用 下 三 角 矩 阵 生 成 函 数 tril()生 成 的 a矩 阵 的 下 三 角 矩 阵,输 出 结 果 如 下:b=1470 05 08 9 23精 通 M ATLAB科 学 计 算(第 2 蝌 2.3.2 矩 阵 的 运 算 矩 阵 与 矩 阵 之 间 可 以 进 行 如 表 2.8所 示 的 基 本 运 算。连 在 进 行 左 除 和 右 除“时,两 矩 阵 的 维 数 必 须 相 等。表 2.8 矩 阵 基 本 运 算
24、操 作 符 号 功 能 说 明 操 作 符 号 功 能 说 明+矩 阵 加 法/矩 阵 的 左 除-矩 阵 减 法 矩 阵 转 置*矩 阵 乘 法 logm()矩 阵 对 数 运 算 A矩 阵 的 幕 expm()矩 阵 指 数 运 算 矩 阵 的 右 除 inv()矩 阵 求 逆【例 2-4】矩 阵 基 本 运 算 实 例。解:MATLAB程 序 代 码 如 下。a=l,2;3,4;b=3,5;2,9;divl=a/b;,矩 阵 的 左 除 div2=ba,矩 阵 的 右 除 两 矩 阵 a 与 b 进 行 了 左 除 和 右 除 运 算,输 出 结 果 如 下:divl=div2=0.29
25、41 0.0588-0.3529-0.11761.1176-0.1765 0.4118 0.4706MATLAB提 供 了 多 种 关 于 矩 阵 的 函 数,表 2.9列 出 了 一 些 常 用 的 矩 阵 函 数 运 算。表 2.9 常 用 矩 阵 函 数 运 算 函 数 名 功 能 说 明 函 数 名 功 能 说 明 rot90()矩 阵 逆 时 针 旋 转 90 cig()计 算 矩 阵 的 特 征 值 和 特 征 向 量 flipud()矩 阵 上 下 翻 转 rank()计 算 矩 阵 的 秩 fliplK)矩 阵 左 右 翻 转 trace()计 算 矩 阵 的 迹 flipdi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精通 MATLAB 科学 计算 王正林 02
限制150内