




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
12MATLAB 编译器和编译器和 API 几乎所有使用过 MATLAB 的科技人员 无不为该软件的简洁 便捷和功能之强大和 可靠所震撼 同时也对 MATLAB 产生了新的期望 一 希望程序能运行得更快 二 希 望获得可摆脱 MATLAB 环境而独立运行的可执行软件 三 希望从其他 非 MATLAB 的外部程序中调用 MATLAB 本章前 6 节介绍 MATLAB 版编译器 Compiler 由于 1 2 版与 2 0 版差异较大 又 由于 2 0 版缺少 1 2 版具有的优化功能 因此内容安排上将兼顾地论及两个版本 值得指出 的是 除 Mathworks 外 还有其他一些公司生产的编译器 其中比较著名的是 MathTools 公司的 Mediva 据该公司自称 性能优于 Mathworks 的 且具有绘图功能 本章第 7 节论及 API 应用程序接口 扼要地介绍不同平台间的数据传送和 MATLAB 引擎技术 节后算例演示了 如何从外部调用 MATLAB 引擎 12 1编译器编译器 2 0 概述概述 12 1 1编译器编译器 2 0 的功能的功能 12 1 2编译器编译器 2 0 的性能改进的性能改进 12 1 3编译器编译器 2 0 的局限性的局限性 12 1 4把脚本文件改写为函数文件把脚本文件改写为函数文件 例 12 1 4 1 有一个绘圆的 M 脚本文件 circle m 如下 希望获得一个 MEX 绘圆程序 1 原始的绘圆脚本文件 原始的绘圆脚本文件 circle m clf r 2 t 0 pi 100 2 pi x r exp i t plot x r axis square 2 对这脚本文件直接编译将因错误而失败 对这脚本文件直接编译将因错误而失败 mcc x circle Error File circle is a Script M file and cannot be compiled with the current Compiler Error in H MATLAB53 toolbox compiler mcc dll 3 把脚本文件改写成函数文件 把脚本文件改写成函数文件 circle f m function circle f r clf t 0 pi 100 2 pi x r exp i t plot x r axis square 4 再对 再对 circle f m 进行编译 将顺利通过 进行编译 将顺利通过 mcc x circle f mcc 是编译指令 详见是编译指令 详见 12 4 节 节 5 运行生成的 运行生成的 MEX 文件文件 circle f dll circle f 0 5 调用调用 circle f 绘制一半径为绘制一半径为 0 5 的圆的圆 which circle f 查询所调用的查询所调用的 circle f 的路径全称 的路径全称 d mywork circle f dll 5 1 2 3 4 5 图 12 1 4 1 MEX 文件 circle f dll 所画的圆 12 2编译器的安装和配置编译器的安装和配置 12 2 1配置配置 MATLAB 编译器的前提准备编译器的前提准备 图 12 2 1 1 Select MATLAB Componets 对话窗的选项局部图 12 2 2为产生为产生 MEX 文件进行预配置文件进行预配置 12 2 2 1对对 MATLAB 编译器应用程序编译器应用程序 mex 的设置的设置 图 12 2 2 1 1 为产生 MEX 文件所产生的配置屏 1 图 12 2 2 1 2 为产生 MEX 文件所产生的配置屏 2 12 2 2 2配置正确性的验证配置正确性的验证 1 mex 应用程序的验证应用程序的验证 cd d mywork 把用户目录指定为当前目录把用户目录指定为当前目录 mex my yprime c 由由 my yprime c 文件生成文件生成 my yprime dll 文件文件 my yprime 1 1 4 运行运行 my yprime dll 文件文件 which my yprime 获得获得 my yprime dll 文件的位置信息文件的位置信息 ans 2 0000 8 9685 4 0000 1 0947 d mywork my yprime dll 2 在 在 MATLAB 命令窗中验证命令窗中验证 mcc 应用程序应用程序 mcc x my yprime m my yprime m 1 1 4 which my yprime m ans 2 0000 8 9685 4 0000 1 0947 d mywork my yprime m dll 3 在 在 DOS 提示符后验证提示符后验证 mex mcc 应用程序应用程序 图 12 2 2 2 1 在 DOS 状态下验证编译指令 12 2 3为产生独立外部应用程序进行预配置为产生独立外部应用程序进行预配置 12 2 3 1对对 MATLAB 编译器编译器 mbuild 应用程序的设置 应用程序的设置 2 0 版 版 图 12 2 3 1 1 为产生独立外部应用程序所产生的配置屏 1 图 12 2 3 1 2 为产生独立外部应用程序所产生的配置屏 2 12 2 3 2对对 MATLAB 编译器编译器 mbuild 应用程序的设置 应用程序的设置 1 2 版 版 12 2 3 3配置正确性的验证配置正确性的验证 1 mbuild 应用程序的验证应用程序的验证 cd d mywork 把用户目录指定为当前目录把用户目录指定为当前目录 mbuild my ex1 c 在在 d mywork 下生成下生成 my ex1 exe 文件文件 图 12 2 3 2 1 在 DOS 窗口运行验证程序 my ex1 exe 所得的结果 2 mcc 应用程序的验证应用程序的验证 mcc p my hello m 图 12 2 3 2 2 在 DOS 窗口运行验证程序 my hello exe 所得的结果 3 在 在 DOS 状态下验证状态下验证 mbuild mcc 工作正确性工作正确性 图 12 2 3 2 3 在 DOS 状态验证编译指令 12 3MATLAB 编译器使用入门编译器使用入门 12 3 1由由 M 文件创建文件创建 C MEX 文件的入门算例文件的入门算例 例 12 3 1 1 先编写 M 文件 然后生成相应的 MEX 文件 该文件用以判断方阵是否奇 异 cd d mywork 1 在 在 MATLAB 的编辑器中 编写下面的函数文件的编辑器中 编写下面的函数文件 exm1 m exm1 m function y exm1 A m n size A if m n error An input matrix should be n by n end r rank A if r m disp This matrix is nonsigular else disp This matrix is sigular end 2 把该函数文件存放于用户目录 把该函数文件存放于用户目录 d mywork 下 下 3 在 在 MATLAB 命令窗中 运行以下指令对命令窗中 运行以下指令对 exm1 m 进行编译 进行编译 mcc x exm1 编译编译 m 文件 文件 4 调用 调用 MEX 文件文件 exm1 dll 进行计算进行计算 A 1 0 1 2 1 0 4 1 4 exm1 A 调用调用 exm1 来判断矩阵来判断矩阵 A 是否奇异 是否奇异 which exm1 查询所调用的查询所调用的 exm1 的路径和全称 的路径和全称 A 1 0 1 2 1 0 4 1 4 This matrix is nonsigular d mywork exm1 dll 12 3 2由由 M 文件创建外部应用程序的入门算例文件创建外部应用程序的入门算例 例 12 3 2 1 建立一个脱离 MATLAB 环境 可独立运行的外部程序 该程序的功能是 对于给定矩阵 A 如果存在 S 使得 S 1AS 则要求出一个 S 否则给出信息说明所给的 矩阵 A 不能对角化 1 编写两个 编写两个 M 函数文件 函数文件 exm2 m 和和 exm2 f m 第一个文件是主文件 第一个文件是主文件 exm2 m function exm2 A 4 0 0 0 3 1 0 1 3 S exm2 f A exm2 f m function S exm2 f A m n size A if m n error 输入矩阵应是方阵 end e eig A 检查输入矩阵的特征值是否各异 same 0 for i 1 m 1 for j i 1 m if e j e i same 1 end end end A可以对角化的条件是A具有互异特征值或者A为埃尔米特矩阵 if any any A A end v d eig A S v 2 把这两个函数文件存放于用户自己的目录 把这两个函数文件存放于用户自己的目录 d mywork 并在 并在 MATLAB 中运行检验 中运行检验 exm2 S 1 0000 0 0 0 0 7071 0 7071 0 0 7071 0 7071 3 生成独立的外部可执行程序 在 生成独立的外部可执行程序 在 MATLAB 指令窗中 运行如下指令指令窗中 运行如下指令 mcc m exm2 exm2 f 4 打开 打开 DOS 窗口 在窗口 在 d mywork 目录下 运行目录下 运行 exm2 exe 得如图 得如图 12 3 2 1 的结果 的结果 图 12 3 2 1 在 DOS 窗口运行生成程序 exm2 exe 所得的结果 12 4编译指令编译指令 mcc 简介简介 12 4 1 mcc 的基本调用格式的基本调用格式 12 4 2 mcc 的选项标志的选项标志 12 4 2 1编译器编译器 2 0 选项简介选项简介 12 4 2 2在命令行中指定选项标志在命令行中指定选项标志 例 12 4 2 2 1 假设当前目录上存在一个文件 exm3 m 现要求利用 M 编译器将它转换为 C 语言的源码文件 并要求将原 M 文件中那注释区的内容作为所得 C 源码文件的注 释 mcc t L Cpp A annotation comments exm3 得到得到 exm3 cpp 和和 exm3 hpp 12 4 2 3设置缺省选项设置缺省选项 例 12 4 2 3 1 假设已在 d mywork下创建了文本文件 mccstartup 请注意 该文件不可 带扩展名 该文件的内容包括若干编译指令的选项 现要求利用该文件 从 exm3 m 出 发得到 C 语言的源文件 cd d mywork 将将 d mywork 设为当前工作目录设为当前工作目录 type mccstartup 打印文本文件打印文本文件 mccstartup 的内容的内容 t L C A annotation none copy mccstartup h y9857 temp 将将 mccstartup 转移到临时目录下转移到临时目录下 copy exm3 m h y9857 temp 将待编译将待编译 M 源码转移到临时目录下源码转移到临时目录下 del mccstartup 删除删除 mccstartup del exm3 删除原有的编译后文件删除原有的编译后文件 dir mccstartup 当前目录下是否含有当前目录下是否含有 mccstartup dir h matlab53 bin mccstartup bin 下是否含该文件下是否含该文件 dir exm3 当前目录下是否含有当前目录下是否含有 exm3 1 file s copied 1 file s copied mccstartup not found h matlab53 bin mccstartup not found exm3 not found copy h y9857 temp exm3 m d mywork mcc L Cpp exm3 1 file s copied Error The options specified will not generate any output files Please use one of the following options to generate an executable output file x generates a MEX file executable using C m generates a stand alone executable using C p generates a stand alone executable using C S generates a Simulink MEX S function using C Or type mcc for more usage information Error in H MATLAB53 toolbox compiler mcc dll copy h y9857 temp mccstartup d mywork 将将 mccstartup 拷贝到当前目录拷贝到当前目录 mcc L Cpp exm3 dir exm3 del mccstartup 1 file s copied exm3 cpp exm3 hpp exm3 m 12 4 2 4编译器编译器 1 2 选项简介选项简介 例 12 4 2 4 1 要求利用 1 2 版编辑器对文件 exm4 m 进行操作 目标是获得 C MEX 文件 和 C 语言的独立可执行文件 1 在 5 3 版 MATLAB 指令窗中的执行指令 mcc V1 2 exm4 mcc V1 2 em exm4 2 为完成同样任务在 5 2 版指令窗中的执行指令 mcc exm4 mcc em exm4 12 5编译文件的性能优化编译文件的性能优化 12 5 1优化原优化原 M 文件的性能文件的性能 12 5 1 1提高向量化程度提高向量化程度 例 12 5 1 1 1 本例演示 M 文件与 MEX 文件 向量运算与循环运算的速度比较 1 编写如下两类函数 编写如下两类函数 M 文件 文件 function y sa x x x x 0 eps y sin x x function y saf x n length x for k 1 n x k x k x k 0 eps y k sin x k x k end 2 在 在 MATLAB 指令窗中 对指令窗中 对 sa mex m 和和 saf mex m 进行编译 进行编译 cd d mywork mcc x sa mex mcc x saf mex 3 运行四个文件 记录运算时间 运行四个文件 记录运算时间 t 2 pi pi 500 2 pi tic sa t tt 1 toc tic saf t tt 2 toc tic sa mex t tt 3 toc tic y saf mex t tt 4 toc 4 结果显示和比较 结果显示和比较 plot t y r grid 2 4 6 8 图 12 5 1 1 1 disp 运算速度比较运算速度比较 disp sa m saf m sa mex dll saf mex dll disp tt 运算速度比较 sa m saf m sa mex dll saf mex dll 0 3300 2 9100 0 3800 2 5800 12 5 1 2对数组进行预置对数组进行预置 例 12 5 1 2 1 以上节例 12 5 1 1 1 为基础 saf m 文件中数组变量 x 和 y 的大小随循环进 行而增长 这大大减慢了运算速度 本例演示 在循环前对进行变量预置的好处 1 编写如下文件 以 编写如下文件 以 saf pro m 和和 saf pro mex m 为名 将之保存在当前目录下 为名 将之保存在当前目录下 function y saf x n length x x zeros 1 n y zeros 1 n for k 1 n x k x k x k 0 eps y k sin x k x k end 2 产生编译文件 产生编译文件 mcc x saf mex mcc x saf pro mex 3 运行 运行 t 2 pi pi 500 2 pi tic saf t tt 1 toc tic saf pro t tt 2 toc tic saf mex t tt 3 toc tic y saf pro mex t tt 4 toc 4 速度比较 速度比较 disp 运算速度比较运算速度比较 disp saf m saf pro m saf mex dll saf pro mex dll disp tt 运算速度比较 saf m saf pro m saf mex dll saf pro mex dll 2 8600 0 6600 2 6300 0 4400 12 5 1 3避免调用复数域函数避免调用复数域函数 12 5 2利用利用 mcc V1 2 的优化性能的优化性能 12 5 2 1编译时指定优化选项编译时指定优化选项 r 和和 i 例 12 5 2 1 1 求如下非线性差分方程组在 10000 个点上的值 观察原 M 文件 无选项 和有选项 MEX 文件运行速度的不同 0 0 3 0 4 11 00 1 2 1 yx xy xyx kk kkk 1 利用 利用 MATLAB 编辑窗口编写如下编辑窗口编写如下 M 函数文件函数文件 function x y m henon n x zeros 1 n y zeros 1 n for k 1 n 1 x k 1 1 y k 1 4 x k 2 y k 1 0 3 x k end 2 对 对 M 文件分别选用编译器文件分别选用编译器 2 0 和和 1 2 进行编译如下 进行编译如下 cd d mywork mcc x mex20 henon 用用 2 0 编译器产生普通编译器产生普通 MEX 文件文件 mcc V1 2 ri ri mex12 henon 用用 1 2 编辑器产生优化的编辑器产生优化的 MEX 文件文件 3 计算各文件运行时间费用的相对值 计算各文件运行时间费用的相对值 n 10000 t zeros 3 2 for k 1 2 运行两次 以做比较运行两次 以做比较 tic m henon n t 1 k toc tic mex20 henon n t 2 k toc tic ri mex12 henon n t 3 k toc end t t t 1 1 4 显示比较结果 显示比较结果 filename m henon mex20 henon ri mex12 henon disp 各文件运行开销的相对值比较表各文件运行开销的相对值比较表 disp blanks 1 产生一个空行产生一个空行 disp 文件名文件名 第一次运行第一次运行 第二次运行第二次运行 disp filename blanks 3 blanks 3 num2str t blanks 产生两个空列产生两个空列 各文件运行开销的相对值比较表 文件名 第一次运行 第二次运行 m henon 1 0 78086 mex20 henon 0 69753 0 59259 ri mex12 henon 0 015432 0 12 5 2 2利用变量类型申明优化性能利用变量类型申明优化性能 12 5 2 3利用编译注记优化性能利用编译注记优化性能 例 12 5 2 3 1 编译注记 ivdep 的应用举例 1 编写如下两个函数 编写如下两个函数 M 文件 并存放在文件 并存放在 d mywork 目录上 目录上 ivdep0 m function A ivdep0 A 1 10 A 5 9 A 3 7 ivdep m function A ivdep A 1 10 ivdep A 5 9 A 3 7 2 分别对这两个文件进行编译 分别对这两个文件进行编译 cd d mywork mcc V1 2 ivdep0 mcc V1 2 ivdep 3 在 在 MATLAB 指令窗中运行以下指令 指令窗中运行以下指令 tic A0 ivdep0 t0 toc tic A ivdep t toc t0 4 显示结果 显示结果 A0 A disp 使用编译注记使用编译注记 ivdep 后的运用时间仅为原来的后的运用时间仅为原来的 num2str t A0 1 2 3 4 3 4 5 6 7 10 A 1 2 3 4 3 4 3 4 3 10 使用编译注记 ivdep 后的运用时间仅为原来的 0 15152 12 6创建独立的外部应用程序创建独立的外部应用程序 12 6 1独立外部程序的工作特点和创建过程独立外部程序的工作特点和创建过程 12 6 1 1独立外部程序与独立外部程序与 MEX 文件的不同工作特点文件的不同工作特点 12 6 1 2独立外部程序创建过程说明独立外部程序创建过程说明 12 6 2关于指令关于指令 mbuild 12 6 3借助编译指令借助编译指令 mcc 创建独立应用程序创建独立应用程序 12 6 3 1创建独立应用程序时创建独立应用程序时 mcc 的使用格式和常用选项标志的使用格式和常用选项标志 12 6 3 2由全由全 M 源文件产生源文件产生 EXE 应用程序应用程序 例 12 6 3 2 1 创建一个适应 超定 恰定 欠定 线性方程求解的示例性应用 程序 1 编写以下两个 编写以下两个 M 函数文件函数文件 LLS m function LLS Ae 5 Av 2 A b LLSDATA Ae Av x A b 以下都是为获得较清晰的显示而编写 S 恰定 if Ae Av S 超定 elseif AeAe A WA 1 Ae end b ones Ae 1 2 对存放在 对存放在 d mywork 上的这两个文件进行编译上的这两个文件进行编译 图 12 6 3 2 1 独立应用程序 LLS exe 解超定方程示例 3 把 把 LLS m 文件第文件第 2 3 行改为行改为 Ae 3 Av 5 重新编译 运行 结果见图 重新编译 运行 结果见图 12 6 3 2 2 图 12 6 3 2 2 独立应用程序 LLS exe 解欠定方程示例 12 6 3 3由含由含 feval 指令的指令的 M 文件生成文件生成 EXE 文件文件 例 12 6 3 3 1 采用编译指定法编译指定法生成一个可以计算方阵各种特征量的独立外部应用程序 1 编写函数 编写函数 M 文件 文件 mat feat m 和和 my det m mat feat m function mat feat f name disp 被分析矩阵 A magic 4 给定的被分析矩阵 N 8 为字符串比较而设的字符串长度 8 n size f name 2 测量输入字符串的长度 ff name f name blanks N n 给输入字符串补充空字符 使长度为8 if ff name my det blanks 2 disp 矩阵 A 的行列式值 elseif ff name rank blanks 4 disp 矩阵 A 的秩 elseif ff name norm blanks 4 disp 矩阵 A 的2 范数 elseif ff name cond blanks 4 disp 矩阵 A 的条件数 elseif ff name eig blanks 5 disp 矩阵 A 的特征值 elseif ff name svd blanks 5 disp 矩阵 A 的奇异值 else disp 您输入的指令 或者不是本函数文件所能解决的 或是错误的 end d feval f name A disp d my det m function d my det A d det A 2 创建计算给定矩阵秩的 创建计算给定矩阵秩的 EXE 文件文件 mcc V1 2 pm mat feat f name rank 3 所生成的 所生成的 mat feat exe 可脱离可脱离 MATLAB 而独立运行 而独立运行 mat feat WARNING Reference to uninitialized variable 被分析矩阵 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 矩阵 A 的秩 3 4 求矩阵行列式值的 求矩阵行列式值的 EXE 文件创建指令 验证运行指令 及运行结果 文件创建指令 验证运行指令 及运行结果 mcc V1 2 p m mat feat f name my det mat feat 被分析矩阵 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 矩阵 A 的行列式值 0 例 12 6 3 3 2 采用编译注记法编译注记法生成一个可以计算方阵行列式值的独立外部应用程序 1 假定想创建一个计算矩阵行列式值的独立应用程序 那么只要在上例 假定想创建一个计算矩阵行列式值的独立应用程序 那么只要在上例 mat feat m 文文 件的第件的第和和行之间插入以下两行指令 而行之间插入以下两行指令 而 M 文件的其余部分都不必改动 文件的其余部分都不必改动 function my det f name my det 2 用以下指令对 用以下指令对 M 文件进行编译 便可得到正确的文件进行编译 便可得到正确的 EXE 文件 文件 mcc p mat feat 例 12 6 3 3 3 当 feval 调用的是 MATLAB C 库中的函数时 可以采用更简单的 feval 输入宗量直接赋值法 实现 EXE 文件的创建 如创建一个计算方阵特征值的独立外部应用 程序 1 只要在例 只要在例 12 6 3 3 1 的的 mat feat m 文件第文件第和和行中间插入如下一条指令即可 行中间插入如下一条指令即可 f name eig 2 用以下指令对 用以下指令对 M 文件进行编译 便可得到正确的文件进行编译 便可得到正确的 EXE 文件 文件 mcc p mat feat 3 以下是运行指令和结果 以下是运行指令和结果 mat feat 被分析矩阵 A 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 矩阵 A 的特征值 34 0000 8 9443 8 9443 0 0000 12 6 3 4由含泛函指令的由含泛函指令的 M 文件生成文件生成 EXE 程序程序 例 12 6 3 4 1 创建一个求一元函数局部最小值的独立外部应用程序 sin 1 6 0 x xe x y 1 为了让读者了解函数 为了让读者了解函数 对将生成的 对将生成的 EXE 文件的运行结果正确性做文件的运行结果正确性做 sin 1 6 0 x xe x y 直观的判断 先运行以下指令绘制如图直观的判断 先运行以下指令绘制如图 12 6 3 4 1 所示的函数曲线 所示的函数曲线 xx 0 0 01 5 yy SAA xx SAA m 文件见本例第文件见本例第 2 步步 plot xx yy x0 2 x fmins SAA x0 y SAA x plot xx yy b x y r MarkerSize 20 grid 012345 图12 6 3 4 1 函数在 2 附近的局部最小值 sin 1 6 0 x xe x y 2 编制以下 编制以下 M 函数文件 并存放在用户自己的工作目录上 函数文件 并存放在用户自己的工作目录上 fcpp m function fcpp fun function SAA 被泛函调用函数的编译注记是必须的 fun SAA 对泛函指令中第一输入宗量具体化也是必须的 xs 1 x fmins fun xs y feval fun x disp blanks 2 disp 独立外部程序 fcpp exe 运行结果显示 disp blanks 2 ss sin exp 0 6x x 函数在 x num2str xs 附近达最小值的坐标为 disp ss disp blanks 1 disp num2str x num2str y SAA m function y SAA x x x x 0 eps y sin x exp 0 6 x x 3 在 在 MATLAB 指令窗或指令窗或 DOS 环境中运行以下编译指令 在用户目录上产生环境中运行以下编译指令 在用户目录上产生 fcpp exe mcc p fcpp 4 在 在 DOS 中运行中运行 fcpp exe 的操作情况和结果如图的操作情况和结果如图 12 6 3 4 2 图12 6 3 4 2 生成的独立程序 fcpp exe 在 DOS 中的运行结果 12 6 3 5由由 C C 源码和源码和 M 源码文件混合生成源码文件混合生成 EXE 应用文件应用文件 例 12 6 3 5 1 主程序为 C 源码文件 被调用程序为 M 文件 1 主文件 主文件 fileinc c 和被调用的和被调用的 mrank m 文件如下文件如下 fileinc c include include matlab h include templib h int main int argc char argv int n mxArray r mxArray N TemplibInitialize n 5 N mxCreateDoubleMatrix 1 1 mxREAL mxGetPr N n r mlfMrank N mlfPrintMatrix r mxDestroyArray r mxDestroyArray N TemplibTerminate return 0 mr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 户外摄影教学活动策划方案
- 园林雾森系统施工方案
- 天津一汽营销方案策划
- 投标申请书仪器信息网
- 大坝防护工程施工方案
- 宁夏财务咨询方案
- 2025年教师资格证考试教育教学知识与能力专项训练试卷
- 特定行业合同模板的使用指南
- 2025工会基础知识考试题库(+答案解析)
- 2026湖北专升本城乡规划专业备考指南
- 4.2《遵守规则》教学设计 -2025-2026学年八年级道德与法治上册
- 人工智能+高质量发展文化旅游产业智能化升级研究报告
- 2025年自考专业(计算机网络)考试综合练习附参考答案详解(A卷)
- 冷链技术对水果品质保持的数值预测模型研究
- 集输工应急处置考核试卷及答案
- 2025年全国保密教育线上培训考试试题库附完整答案(必刷)
- 珠江医院护理面试题库及答案
- 流程管理某省市场营销MPR+LTC流程规划方案
- 2025年江苏省农垦集团有限公司招聘笔试备考及答案详解(新)
- 2025年济南市中考英语试题卷(含答案及解析)
- 2025年人教版一年级下册数学口算题卡(1000题)
评论
0/150
提交评论