已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 Matlab 简易教程简易教程 2 8 M 文件和面向对象编程文件和面向对象编程 假如读者想灵活运用 MATLAB 去解决实际问题 想充分调动 MATLAB 科学技术 资源 想理解 MATLAB 版本升级所依仗的基础 那么本章内容将十分有用 本章将涉及比较深层的 MATLAB 内容 脚本 函数 一般函数 内联函数 子函 数 私用函数 方法函数 程序调试和剖析 数据结构 类 对象 重载和继承 面 向对象编程 本章配备了许多精心设计的算例 这些算例是完整的 可直接演练的 读者 通过这些算例 将真切感受到抽象概念的内涵 各指令间的协调 将从感知上领悟到面向 对象编程的优越和至关要领 8 1 入门入门 例 8 1 1 通过 M 脚本文件 画出下列分段函数所表示的曲面 15457 0 117575 0 15457 0 21 5 175 3 75 0 21 6 21 5 175 3 75 0 21 1 2 1 2 2 2 1 2 2 1 2 1 2 2 xxe xxe xxe xxp xxx xx xxx 1 编写 编写 M 脚本文件的步骤脚本文件的步骤 图 8 1 1 1 MATLAB Editor Debugger 窗口 点击 MATLAB 指令窗工具条上的 New File 图标 就可打开如图 8 1 1 1 所示的 MATLAB 文件编辑调试器 MATLAB Editor Debugger 其窗口名为 untitled 用户即可 在空白窗口中编写程序 比如输入如下一段程序 zx81 m zx81 mThis is my first example a 2 b 2 clf x a 0 2 a y b 0 2 b for i 1 length y for j 1 length x if x j y i 1 z i j 0 5457 exp 0 75 y i 2 3 75 x j 2 1 5 x j elseif x j y i 1 z i j 0 5457 exp 0 75 y i 2 3 75 x j 2 1 5 x j 3 else z i j 0 7575 exp y i 2 6 x j 2 end end end axis a a b b min min z max max z colormap flipud winter surf x y z 点击编辑调试器工具条图标 在弹出的 Windows 标准风格的 保存为 对话框 中 选择保存文件夹 键入新编文件名 如 zx81 点动 保存 键 就完成了文件 保存 2 运行文件 运行文件 使 zx81 m 所在目录成为当前目录 或让该目录处在 MATLAB 的搜索路径上 然后运行以下指令 便可得到图形 zx81 图 8 1 1 2 运行 zx81 m 得到的图形 例 8 1 2 通过 M 函数文件画出上例分段函数的曲面 整个编程步骤和相同 在此演示 如何在 zx81 m 基础上产生函数文件 zx82 m 在编辑调试器中 选择 File Save As 子菜单 把 zx81 m 文件 另存为 zx82 m 用下面 4 行指令代替原文件的第条指令 function zx82 a b This is my second example aDefine the limit of variable x bDefine the limit of variable y 进行上述修改后 对 zx82 m 再次实施 保存 操作 在 MATLAB 指令窗中 运行以下指令 就能产生与图 8 1 1 2 完全相同的图形 zx82 2 2 8 2 M 文本编辑器文本编辑器 8 2 1 利用文本编辑器编写利用文本编辑器编写 M 文件文件 8 2 2 tools 菜单菜单 4 8 3 MATLAB 控制流控制流 8 3 1 for 循环结构循环结构 例 8 3 1 1 一个简单的 for 循环示例 for i 1 10 i 依次取依次取 1 2 10 x i i 对每个对每个 i 值 重复执行由该指令构成的循环体 值 重复执行由该指令构成的循环体 end x 要求显示运行后数组要求显示运行后数组 x 的值 的值 x 1 2 3 4 5 6 7 8 9 10 8 3 2 while 循环结构循环结构 例 8 3 2 1 Fibonacci 数组的元素满足 Fibonacci 规则 12 kkk aaa 且 现要求该数组中第一个大于 10000 的元素 2 1 k1 21 aa a 1 1 a 2 1 i 2 while a i 8 sums number 0 95 cost end sums sums 114 0000 例 8 3 3 2 用 for 循环指令来寻求 Fibonacc 数组中第一个大于 10000 的元素 n 100 a ones 1 n for i 3 n a i a i 1 a i 2 if a i 10000 a i break 跳出所在的一级循环 跳出所在的一级循环 end 5 end i ans 10946 i 21 8 3 4 switch case 结构结构 例 8 3 4 1 学生的成绩管理 用来演示 switch 结构的应用 clear 划分区域 划分区域 满分 100 优秀 90 99 良好 80 89 及格 60 79 不及格 2 error 输入宗量太多 end if nargin 1 s b end clf t 0 pi 100 2 pi x r exp i t if nargout 0 plot x s else sa pi r r fill real x imag x s end axis square 8 4 5 P 码文件码文件 8 4 5 1 语法分析过程和伪代码语法分析过程和伪代码 8 4 5 2 P 码文件的预生成码文件的预生成 8 4 5 3 内存中内存中 P 码文件的列表和清除码文件的列表和清除 8 4 6 MATLAB 的搜索过程的搜索过程 8 5 变量的检测传递和限权使用函数变量的检测传递和限权使用函数 8 5 1 输入输出宗量检测指令输入输出宗量检测指令 8 5 2 变长度变长度 输入输出宗量输入输出宗量 例 8 5 2 1 变长度宗量使用示例 1 编写函数文件 编写函数文件 ringzy m ringzy m function varargout ringzy r varargin RINGZYPlot a ring and calculate the area of the ring r基圆半径 调用格式 x1 y1 x2 y2 s1 s2 ringzy r r2 PropertyName PropertyValue 1 无输出时 绘圆或环 2 有输出时 不绘图 8 x1 y1 x2 y2 分别是两个圆的坐标点 s1是基圆面积 s2为正值时 表示内环面积 为负值时 表示外环面积 vin length varargin Nin vin 1 error nargchk 1 Nin nargin 检查输入变量数目是否合适 if nargout 6 检查输出变量数目是否合适 error Too many output arguments end t 0 pi 20 2 pi x r exp i t s pi r r if nargout 0 switch Nin case 1 plot x b case 2 r2 varargin 1 x2 r2 exp i t plot x b hold on plot x2 b hold off otherwise r2 varargin 1 x2 r2 exp i t plot x varargin 2 end hold on 利用元胞数组设置对象属性 plot x2 varargin 2 end hold off 利用元胞数组设置对象属性 end axis square else varargout 1 real x varargout 2 imag x varargout 5 pi r r varargout 6 if Nin 1 r2 varargin 1 x2 r2 exp i t varargout 3 real x2 varargout 4 imag x2 varargout 6 pi r 2 r2 2 end end 2 有输出情况 有输出情况 请读者自己用 plot x1 y1 x2 y2 检验下列三个调用示例的运行结果 r1 1 r2 3 x1 y1 x2 y2 s1 s2 ringzy r1 x1 y1 x2 y2 ringzy r1 r2 x1 y1 x2 y2 s1 s2 ringzy r1 r2 3 无输出情况 无输出情况 为节省篇幅 在此给出三个调用示例 r1 1 r2 0 6 subplot 1 3 1 ringzy r1 r2 subplot 1 3 2 ringzy r1 r2 Marker o subplot 1 3 3 ringzy r1 r2 LineWidth 5 Color 1 0 4 0 9 01 0 5 1 0 0 5 1 5 图 8 5 2 1 1 变长度输入宗量不同调用格式产生的图形 8 5 3 跨空间变量传递跨空间变量传递 8 5 3 1 跨空间计算串表达式的值跨空间计算串表达式的值 例 8 5 3 1 1 evalin 运行机理与 eval 的异同 1 编写 编写 M 函数文件函数文件 evalinzzy m function y1 evalinzzy a s t 0 a a 2 pi y1 subevalinzzy 4 s subfunction function y2 subevalinzzy a s t 0 a a 2 pi ss a exp i t switch s case base caller y2 evalin s ss case self y2 eval ss end 2 在 在 Notebook 或或 MATLAB 指令窗中运行以下指令指令窗中运行以下指令 clear a 30 t 0 a a 2 pi sss base caller self for k 1 3 y0 evalinzzy 8 sss k subplot 1 3 k plot real y0 imag y0 r LineWidth 3 axis square image end 10 0 0 0 0 5 0 0 4 图 8 5 3 1 1 利用不同工作空间中的变量值计算 eval a exp i t 8 5 3 2 跨空间赋值跨空间赋值 例 8 5 3 2 1 assignin 运作机理示范 1 编写 编写 M 函数文件函数文件 assigninxyq m function y assigninxyq x y sqrt x t x 2 assignin base yy t 2 在 在 Notebbok 或或 MATLAB 指令窗中运行以下指令指令窗中运行以下指令 clear x 4 y assigninxyq x disp blanks 5 x blanks 5 y blanks 4 yy disp x y yy x y yy 4 2 16 8 5 4 子函数子函数和和私用函数私用函数 8 5 4 1 子函数子函数 8 5 4 2 私用函数私用函数 8 6 串演算函数串演算函数 8 6 1 eval 例 8 6 1 1 计算 表达式 串 产生向量值 clear t pi cem t 2 t 2 sin t y eval cem y 1 5708 6 2832 0 0000 例 8 6 1 2 计算 语句 串 创建变量 11 clear t pi eval theta t 2 y sin theta who theta 1 5708 y 1 Your variables are t theta y 例 8 6 1 3 计算 替代 串 A ones 2 1 B ones 1 3 c eval B A A B errmessage lasterr c 1 1 1 1 1 1 errmessage Error using Inner matrix dimensions must agree 例 8 6 1 4 计算 合成 串 CEM cos sin tan for k 1 3 theta pi k 12 y 1 k eval CEM 1 num2str theta end y y 0 9659 0 8660 0 7071 8 6 2 feval 例 8 6 2 1 feval 和 eval 运行区别之一 feval 的 FN 绝对不能是表达式 x pi 4 Ve eval 1 sin x Ve 1 7071 Vf feval 1 sin x x Cannot find function 1 sin x 例 8 6 2 2 feval 和 eval 调用区别 feval 的 FN 只接受函数名 本例两种方法以后者为 好 randn seed 1 A rand 2 2 ue de ve eval svd A disp Results by eval disp ue de ve disp blanks 1 uf df vf feval svd A disp Results by feval disp uf df vf Results by eval 0 6180 0 7862 0 5516 0 0 4616 0 8871 0 7862 0 6180 0 0 3038 0 8871 0 4616 Results by feval 0 6180 0 7862 0 5516 0 0 4616 0 8871 12 0 7862 0 6180 0 0 3038 0 8871 0 4616 8 6 3 内联函数内联函数 8 6 3 1 内联函数的创建内联函数的创建 8 6 3 2 涉及内联函数性质的指令涉及内联函数性质的指令 8 6 3 3 内联函数创建和应用示例内联函数创建和应用示例 例 8 6 3 3 1 演示 内联函数的第一种创建格式 使内联函数适于 数组运算 clear F1 inline sin rho rho 第一种格式创建内联函数第一种格式创建内联函数 F1 Inline function F1 rho sin rho rho f1 F1 2 内联函数的一种使用方法内联函数的一种使用方法 f1 0 4546 FF1 vectorize F1 产生适于产生适于 数组运算数组运算 的内联函数的内联函数 xx 0 5 1 1 5 2 ff1 FF1 xx FF1 Inline function FF1 rho sin rho rho ff1 0 9589 0 8415 0 6650 0 4546 例 8 6 3 3 2 演示 第一种内联函数创建格式的缺陷 含向量的多宗量输入的赋值 G1 inline a exp x 1 cos x 2 G1 2 1 pi 3 G1 Inline function G1 a a exp x 1 cos x 2 Error using inline subsref Too many inputs to inline function G2 inline a exp x 1 cos x 2 a x G2 2 1 pi 3 G2 Inline function G2 a x a exp x 1 cos x 2 ans 0 3679 例 8 6 3 3 3 演示 产生向量输入 向量输出的内联函数 这种向量函数的调用方法 Y2 inline x 1 2 3 x 1 sin x 2 argnames Y2 观察内联函数的输入宗量观察内联函数的输入宗量 Y2 13 Inline function Y2 x x 1 2 3 x 1 sin x 2 ans x x 4 pi 6 向量输入的赋值向量输入的赋值 y2 Y2 x 获得向量输出获得向量输出 y2 16 0000 6 0000 例 8 6 3 3 4 演示 最简练格式创建内联函数 内联函数可被 feval 指令调用 Z2 inline P1 x sin x 2 P2 2 必须是大写字母必须是大写字母 P Z2 Inline function Z2 x P1 P2 P1 x sin x 2 P2 z2 Z2 2 2 3 直接计算内联函数直接计算内联函数 fz2 feval Z2 2 2 3 注意 这里 应写注意 这里 应写 Z2 不能写成 不能写成 Z2 z2 2 6279 fz2 2 6279 8 7 创建用户工具箱创建用户工具箱 8 7 1 MATLAB 对工具箱文件的管理特点对工具箱文件的管理特点 8 7 2 建立用户工具箱须知建立用户工具箱须知 8 8 调试和剖析调试和剖析 8 8 1 直接调试法直接调试法 8 8 2 调试器的使用调试器的使用 8 8 2 1 图形式调试器图形式调试器 8 8 2 2 调试器应用示例调试器应用示例 例 8 8 2 2 1 本例的目标 对于任意随机向量 画出鲜明标志该随机向量均值 标准差 的频数直方图 如图 8 8 2 2 1 1 或给出绘制这种图形的数据 14 0 3 0 5 图 8 8 2 2 1 1 带均值 标准差标志的频数直方图 1 根据题目要求写出以下两个 根据题目要求写出以下两个 M 文件文件 histzzy m function nn xx xmu xstd histzzy x xmu mean x xstd std x nn xx hist x if nargout 0 barzzy nn xx xmu xstd end barzzy m function barzzy nn xx xmu xstd clf bar xx nn hold on Ylimit get gca YLim yy 0 Ylimit 2 xxmu xmu size yy xxL xxmu xmu xmu xstd xxR xxmu xmu xmu xstd plot xxmu yy r Linewidth 3 plot xxL yy rx MarkerSize 8 plot xxR yy rx MarkerSize 8 hold off 2 初次运行以下指令后 得到运行出错的提示 初次运行以下指令后 得到运行出错的提示 randn seed 1 x randn 1 100 histzzy x Error using plot Vectors must be the same lengths Error in E mat53 work barzzy m On line 8 plot xxmu yy r Linewidth 3 Error in E MAT53 work histzzy m On line 6 barzzy nn xx xmu xstd 15 123 0 图 8 8 2 2 1 2 运行出错时所得的不完整图形 3 初步分析错误原因 初步分析错误原因 4 断点设置 断点设置 5 在指令窗中运行以下指令 进入 在指令窗中运行以下指令 进入 动态动态 调试调试 randn seed 1 x randn 1 100 histzzy x 图 8 8 2 2 1 3 运行暂停在断点处 6 深入被调文件内部 深入被调文件内部 图 8 8 2 2 1 4 动态调试深入 barzzy m 7 连续执行 直到另一个断点 连续执行 直到另一个断点 16 图 8 8 2 2 1 5 变量值的鼠标观察法 B 指令窗观察法 指令窗观察法 9 修改程序 停止第一论调试 重新运行 修改程序 停止第一论调试 重新运行 randn seed 1 x randn 1 100 histzzy x 8 8 3 M 文件性能剖析文件性能剖析 8 8 3 1 M 文件性能优化须知文件性能优化须知 8 8 3 2 剖析器剖析器 例 8 8 3 2 1 演示剖析指令的基本使用 对例 8 8 2 2 1 中那通过调试后运行正确的 histzzy m 进行性能分析 1 产生剖析报告 产生剖析报告 randn seed 1 x randn 1 100 profile on 启动剖析器 在启动剖析器 在 mmex 层面上统计数据层面上统计数据 for kk 1 100 histzzy x end 运行运行 100 次 使统计数据受随机因素影响较小次 使统计数据受随机因素影响较小 profile report histzzy report 产生名为产生名为 histzzy report htm 的分析报告的分析报告 图 8 8 3 2 1 1 超文本形式剖析报告的 Summary 章的部分内容 17 2 研究剖析报告 研究剖析报告 图 8 8 3 2 1 2 从所得 barzzy m 明细报告中剪辑的部分内容 3 改进措施 改进措施 8 9 面向对象编程面向对象编程 8 9 1 概念综述概念综述 8 9 1 1 类和对象类和对象 8 9 1 2 面向对象编程的内涵面向对象编程的内涵 8 9 2 面向对象编程应用示例面向对象编程应用示例 例 8 9 2 1 本例演示 创建 先进先出 FIFO 队列 queue 类的全过程 在本例中 读者 应充分注意 构架域 Fields of a structure array 和定义在其上的方法函数 Method function 之间的关系 1 建立类目录 建立类目录 queue 2 选择构架数组为 选择构架数组为 queue 类的数据结构类的数据结构 3 创建构造函数 创建构造函数 queue m queue queue m function q queue v QUEUE QUEUE queue class constructor function 调用格式 q queue 创建一个 空 队列对象 q queue v 创建包含变量v的队列对象 superiorto double sparse struct cell char inline sym 使queue对象具有最高优先级 if nargin 1 error Too many arguments end if nargin 0 没有输入宗量情况 q value value 域被赋 空阵 q name name 域不给任何字符 q class q queue 给变量 q 挂上queue标签 elseif isa v queue 输入宗量是同类对象情况 18 q v 直接把输入量赋给 q else 非同类输入宗量情况 q value v 在 value 域中放置输入对象 v 的内容 q name inputname 1 在 name 域中放置输入对象名 v 字符 if isempty q name 假如输入量无名 q name class v 就采用 v 本身的类名 end q class q queue 给变量 q 挂上queue标签 end 4 为 为 queue 对象编写显示函数对象编写显示函数 display m queue display m function display q ki kj QUEUE DISPLAY command window display of a queue object 调用格式 display q 笼统显示整个队列 display q ki 单下标法显示具体队列元素的内容 display q ki kj 双下标法显示具体队列元素的内容 if nargin 0 error 缺少输入宗量 即被显示对象 end switch nargin case 1 显示整个队列 m n size q vname inputname 1 被显示对象 q 的名称 if isempty vname 显示对象若无名称 fprintf ans n 按MATLAB惯例 屏幕显示ans缺省名 elseif fprintf s n vname 对象有名称时 则屏幕以字符串形式显示名 称 end if isempty q 假如被显示对象为 空 fprintf empty fprintf s class q fprintf n n elseif m n 1 被显示对象今包含一个 元素 时 fprintf s q name 屏幕先以字符串形式显示所存放对象的名称 disp q value 紧接着 不换行 显示所存放对象的内容 fprintf n else 被显示对象今包含多个 元素 时 fprintf d d m n 以下3条指令只显示队列 元素 排列 fprintf s class q fprintf n n end case 2 单下标法显示具体队列元素的内容 disp The content of inputname 1 int2str ki disp is a class q ki value object fprintf s n q ki name disp q ki value fprintf n case 3 双下标法显示具体队列元素的内容 disp The content of inputname 1 int2str ki int2str kj disp is a class q ki kj value object 19 fprintf s n q ki kj name disp q ki kj value fprintf n end 5 编写重载函数 编写重载函数 isempty m queue isempty m function f isempty q QUEUE ISEMPTY True for an empty queue object f 0 m n size q if m n 1 if isempty q value end end 6 编写 编写 入队入队 离队离队 函数函数 queue comein m function q comein p varargin QUEUE COMEIN a variable comes to the end of a queue 调用格式 comein p a b 使输入宗量a b等排在p之后形成新队列 其名沿用p位置上的输入队列名 q comein p a b 使输入宗量a b等排在p之后形成新队列 q if nargin 2 error comein needs at least two arguments end if isa p queue error inputname 1 is not a queue end q0 p qzzy class p 获取第一输入宗量的类别字符串 for i 1 length varargin temp varargin i s eval qzzy temp 使后来元素成为与第一输入宗量相同的类别 s name inputname i 1 if isempty s name 假如某输入宗量本身无名称 s name class temp 则把它的类别名作为名称使用 end if isempty q0 假如前队列是 空 队列 q0 s 则直接进入队列 else 假如前队列非 空 q0 q0 s 则新变量排在队尾 end end if nargout 0 假如没有输出宗量 assignin caller inputname 1 q0 新队列沿用第一个输入队列名 evalin caller inputname 1 else 假如有输入输出宗量 q q0 新队列名为q end 20 queue goout m function n v q goout p QUEUE GOOUT removes the first the front element from a queue 调用格式 goout p 从队列 p 中的第一个元素离队 v goout p v 是从 p 队列中移出的那第一个元素的 值 n v goout p n v 分别 是从 p 队列中移出的那第一个元素的 名称 和 值 n v q goout p n v 分别 是从 p 队列中移出的那第一个元素的 名称 和 值 q 是被移去第一个元素后的新队列 if nargin 0 error No queue specifide end if nargout 3 error Too many output arguments end if nargin 1 error Too many input arguments end if isa p queue error inputname 1 is not a queue end if isempty p q1 p else m n size p v1 p 1 value n1 p 1 name if m n 1 q1 queue else q1 p 2 end end end if nargout 1 v v1 end if nargout 2 n n1 end if nargout 3 q q1 end 例 8 9 2 2 本例的目的 一 检验例 8 9 2 1 所编写的程序的正确性 二 演示所设计 的新类是如何被运作的 1 创建一个队列对象 并显示 创建一个队列对象 并显示 qe Hello 你好你好 字符串字符串 Q queue qe 生成队列对象生成队列对象 Q 并显示 并显示 Q qe Hello 你好 2 类别检查和是否对象判断 类别检查和是否对象判断 class Q 类别检查类别检查 isobject Q 是否对象判断是否对象判断 isa Q queue 是否队列判断是否队列判断 ans queue ans 1 21 ans 1 3 是否 是否 空空 队列判断队列判断 isempty Q ans 0 例 8 9 2 3 本例目的 一 演示 入队 离队 函数的调用方法 二 演示 queue display 显示队列具体元素细节的功能 1 利用 利用 入队入队 函数 使队列变长 函数 使队列变长 a 1 2 3 4 5 6 b 1 This b 2 is b 3 a cell array comein Q a b 增长队列 并显示整个队列的增长队列 并显示整个队列的 宏观宏观 情况情况 Q 1 3 queue 2 显示队列 显示队列 Q 中具体元素的内容中具体元素的内容 display Q 2 给出给出 Q 队列第队列第 2 个元素的类别 内容 变量名和值个元素的类别 内容 变量名和值 The content of Q 2 is a double object a 1 2 3 4 5 6 3 把 把 Q 队列第队列第 1 个元素和其余部分分离 并生成新队列个元素和其余部分分离 并生成新队列 QQ nn vv QQ goout Q nn qe vv Hello 你好 QQ 1 2 queue 4 采用双下标法 显示 采用双下标法 显示 QQ 1 2 的内容的内容 display QQ 1 2 The content of QQ 1 2 is a cell object b This is a cell array 例 8 9 2 4 利用指令 methods 可以获知对任何类定义的 在类目录上的 所有方法函 数 methods queue Methods for class queue comein display goout isempty queue 22 8 9 3 重载运算重载运算 8 9 4 继承性
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 送料装置智能工厂设计案例课程设计
- 搜索引擎内容审核技术课程设计
- 波士顿帆船课程设计
- 2026海南省初级导游证试(全国+地方导游基础知识)强化训练试题及答案
- 2025年银行反洗钱知识竞赛题库和答案
- 2025年山西省(82所)马克思主义基本原理概论期末考试模拟题附答案
- 2026中国智慧港口建设现状与技术创新路径研究报告
- 2026能源转型行业市场供需平衡分析及发展策略规划研究报告
- 2026中国废旧锂离子电池正极材料再生技术突破报告
- 2026汽车电镀行业市场发展分析及环保要求与管理策略研究报告
- 化工行业的法律与法规
- 《保健艾灸师》专项测试题附答案
- 全国2023年4月自考00018《计算机应用基础》真题
- 第3讲“运动图像”的分类研究
- 台球厅暂停营业通知(4篇)
- 人教版二年级上册《道德与法治》全册教案
- 初三数学开学第一课
- 教科版四年级英语上册(广州版)全册课件【完整版】
- 国家审计报告
- 重庆市药品技术审评查验中心工作人员岗招考聘用35人笔试题库含答案解析
- GB/T 17421.2-2016机床检验通则第2部分:数控轴线的定位精度和重复定位精度的确定
评论
0/150
提交评论