MATLAB4-1第3章程序设计初步.ppt

上传人:sh****n 文档编号:6378586 上传时间:2020-02-24 格式:PPT 页数:85 大小:563.50KB
返回 下载 相关 举报
MATLAB4-1第3章程序设计初步.ppt_第1页
第1页 / 共85页
MATLAB4-1第3章程序设计初步.ppt_第2页
第2页 / 共85页
MATLAB4-1第3章程序设计初步.ppt_第3页
第3页 / 共85页
点击查看更多>>
资源描述
MATLAB SDU 1 第3章matlab的程序设计初步 MATLAB SDU 2 OUTLINE MATLAB的m文件的创建和使用MATLAB程序控制结构程序设计调试的基本方法 MATLAB SDU 3 什么是m文件 用户如想灵活应用matlab去解决实际问题 充分调用matlab的科学技术资源 就需要编辑m文件包含matlab语言代码的文件称为m文件 其扩展名为m 编辑m文件可使用各种文本编辑器 MATLAB SDU 4 2 m文件m文件的语法类似于c语言 但又有其自身特点 它只是一个简单的ASCII码文本文件 执行程序时逐行解释运行程序 matlab是解释性的编程语言 m文件有两类 独立的m文件 称命令文件 脚本 script 可调用m文件 称函数文件Functions MATLAB SDU 5 表3 1脚本文件与函数文件的区别 MATLAB SDU 6 Review matlab的工作模式 指令驱动模式 通常matlab以指令驱动模式工作 即在matlab窗口下当用户输入单行指令时 matlab立即处理这条指令 并显示结果 这就是matlab命令行方式 命令行操作时 matlab窗口只允许一次执行一行上的一个或几个语句 MATLAB SDU 7 例如 x1 0 10 x1 012345678910 x2 0 3 11x2 0369x3 11 5 3 0 x3 11 50008 50005 50002 5000 MATLAB SDU 8 x1 0 10 x2 0 3 11 x3 11 5 3 0 x1 012345678910 x2 0369x3 11 50008 50005 50002 5000命令行方式程序可读性差 而且不能存储 对于处理复杂问题和大量数据时是不方便的 应编写成能存储的程序文件 MATLAB SDU 9 m文件模式将matlab语句构成的程序存储成以m为扩展名的文件 然后再执行该程序文件 这种工作模式称为程序文件模式 程序文件不能在指令窗口下建立 因为指令窗口只允许一次执行一行上的一个或几个语句 MATLAB SDU 10 M文件的创建和编辑 不管是创建或编辑脚本文件还是函数文件 可以使用各种文本编辑器 例如Windows系统下的记事本 其它商业化软件UltraEdit EditPlus等等 但是储存格式必须是ASCII的格式 并且必须以 m为后缀名 通常情况下可以直接使用MATLAB中内置的M文件编辑器 MATLAB SDU 11 2 点击file SaveWorkspaceAs 将工作空间中的内容存入文件 edit 用各种edit编辑器编制m文件 edit 用matlab自带的编辑器编制m文件 word 用word编辑m文件 m文件编辑器的设定m文件编辑器可自己设定 设定方法是matlab命令窗口options菜单下点击EditPreference选定m文件编辑器 MATLAB SDU 12 m文件编辑器缺省设置是matlabeditor还可设成 其他的TextEditor从 file preference editor debugger设置注意 所创建的m文件必须纳入matlab搜索路径后 才能在matlab命令窗口运行 MATLAB SDU 13 matlab搜索路径的设置matlab缺省路径是c matlab bin 用pathtool路径浏览器设定当前目录 file setpath 方法设定当前目录 MATLAB SDU 14 matlab文件的数据文件类型mat 数据文件 matmat文件是matlab以标准二进制格式保存的数据文件 可将工作空间中有用的数据变量保存下来 mat文件的生成和调用是由函数save和load完成的 MATLAB SDU 15 M文件结构 良好习惯建议1 程序尽量做到简单易懂 2 所有变量都用小写 并且含义清晰明了 如用year作为变量保存年份等 3 带有必要的注释 这样有助于他人和自己能快速知道程序执行的目的或者算法的含义 另外也可以有助于追溯记录程序的更新过程 MATLAB SDU 16 脚本 命令 文件 Script 命令文件 简单的m文件命令文件实际上是一串指令的集合 与在命令窗口逐行执行文件中的所有指令 其结果是一样的 没有输入输出参数 脚本 本身反映这样一个事实 MATLAB只是按文件所写的指令执行 M脚本 命令 文件的构成较简单 其特点是 它只是一串按用户意图排列而成的 包括控制流向指令在内的 MATLAB指令集 脚本文件运行后 所产生的所有变量都驻留在MATLAB基本工作空间 Baseworkspace 中 只要不使用clear指令加以清除 且MATLAB指令窗不关闭 这些变量将一直保存在基本工作空间中 基本工作空间随MATLAB的启动而产生 只有关闭MATLAB时 该基本空间才被删除 MATLAB SDU 17 M函数文件 Function 与脚本 命令 文件不同 函数文件 Functionfile 犹如一个 黑箱 从外界只能看到传给它的输入量和送出来的计算结果 而内部运作是藏而不见的 MATLAB SDU 18 函数文件的特点 从形式上看 与脚本文件不同 函数文件的第一行总是以 function 引导的 函数申明行 Functiondeclarationline 该行还罗列出函数与外界联系的全部 标称 输入输出宗量 但对 输入输出宗量 的标称数目并没有限制 即可以完全没有输入输出宗量 也可以是任意数目 MATLAB允许使用比 标称数目 较少的输入输出宗量 实现对函数的调用 从运行上看 与脚本文件运行不同 每当函数文件运行 MATLAB就会专门为它开辟一个临时工作空间 称之谓函数工作空间 Functionworkspace 所有中间变量都存放在函数工作空间中 当执行完文件最后一条指令或遇到return时 就结束该函数文件的运行 同时该临时函数空间及其所有的中间变量就立即被清除 函数空间随具体M函数文件的被调用而产生 随调用结束而删除 函数空间是相对独立的 临时的 在MATLAB整个运行期间 可以产生任意多个临时函数空间 假如在函数文件中 发生对某脚本文件的调用 那么该脚本文件运行产生的所有变量都存放于该函数空间之中 而不是存放在基本空间 MATLAB SDU 19 函数m文件的格式 function返回变量 函数名 输入变量 注释说明语句段程序语句段特定规则 函数m文件第一行必须以单词function作为引导词 必须遵循如下形式 function m文件的文件名必须是 m 程序中的变量均为局部变量 不保存在工作空间中 其变量只在函数运行期间有效 MATLAB SDU 20 M函数文件示例 functionsa circle r s CIRCLEplotacircleofradiirinthelinespecifiedbys r指定半径的数值 s指定线色的字符串 sa圆面积 circle r 利用蓝实线画半径为r的圆周线 circle r s 利用串s指定的线色画半径为r的圆周线 sa circle r 计算圆面积 并画半径为r的蓝色圆面 sa circle r s 计算圆面积 并画半径为r的s色圆面 编写于2001年4月7日 修改于2002年8月27日 ifnargin 2error 输入宗量太多 end ifnargin 1s b end MATLAB SDU 21 函数申明 定义 行 Functiondeclarationline 位于函数文件的首行 以MATLAB关键字function开头 函数名以及函数的输入输出宗量都在这一行定义 MATLAB SDU 22 H1行 Thefirsthelptextline 紧随函数申明行之后以 开头的第一注释行 按MATLAB自身文件的规则 H1行包含 大写体的函数文件名 运用关键词简要描述的函数功能 该H1行供lookfor关键词查询和help在线帮助使用 MATLAB SDU 23 在线帮助文本 Helptext 区 H1行及其之后的连续以 开头的所有注释行构成整个在线帮助文本 它通常包括 函数输入输出宗量的含义 调用格式说明 MATLAB SDU 24 编写和修改记录 与在线帮助文本区相隔一个空行 也以 开头 标志编写及修改该M文件的作者和日期 版本记录 它用于软件档案管理 MATLAB SDU 25 函数体 Functionbody 为清晰起见 它与前面的注释行以空行相隔 这部分内容由实现该M函数文件功能的MATLAB指令组成 它接收输入宗量 进行程序流控制 得到输出宗量 其中为阅读 理解方便 也配置适当的空行和注释 若仅从运算角度看 惟有函数申明行和函数体两部分是构成M函数文件所必不可少的 MATLAB SDU 26 functionr rank A tol RANKMatrixrank RANK A providesanestimateofthenumberoflinearly independentrowsorcolumnsofamatrixA RANK A tol isthenumberofsingularvaluesofA thatarelargerthantol RANK A usesthedefaulttol max size A norm A eps ClasssupportforinputA float double single Copyright1984 2004TheMathWorks Inc Revision 5 11 4 2 Date 2004 04 1023 30 08 s svd A ifnargin 1tol max size A eps max s endr sum s tol 程序部分 MATLAB SDU 27 matlab内置函数文件matlab自定义的函数文件称内置函数文件调用内置函数的方法 使用函数名并给出相应的入口 出口参数即可 例如 sin m函数调用格式 y sin 2 x 实际应用中 x 0 2 pi 180 2 pi y sin 2 x plot x y M函数文件分两类 内置和自定义 MATLAB SDU 28 又如sqrt x 求x的平方根abs x 求x的绝对值det a 求行列式的值等等 matlab拥有大量的内置数学函数 供我们在数值运算和符号运算中调用 MATLAB SDU 29 II函数m文件 需要输入变量 返回输出变量matlab用户可以根据需要编辑自己的m文件 它们可以像库函数一样方便的调用 从而极大地扩展了matlab的能力 对于某一类特殊问题 如创建了许多m函数文件 则可形成新的工具箱 这种用matlab语言创建定义新的matlab函数的功能 正体现了matlab语言强大的扩展功能 MATLAB SDU 30 M文件命名以及调用 对于脚本文件的命名 规则和变量的命名规则一致 即必须以字母开头 其余部分可以是字母 数字和下划线的任意组合 调用脚本文件时只需要在MATLAB的主窗口输入脚本文件的名字 不带后缀 脚本文件内的内容就会得到执行 MATLAB SDU 31 函数文件命名与调用 函数文件的命名规则除了和变量的命名规则一致以往 另外惯用的规则是函数文件名和函数名相一致 调用方式 out1 out2 outN functionname in1 in2 inN 输出方括号 输入小括号 MATLAB SDU 32 例 利用函数文件 实现直角坐标 x y 与极坐标 之间的转换 函数文件tran m function rho theta tran x y rho sqrt x x y y theta atan y x 调用tran m的命令文件main1 m x input Pleaseinputx y input Pleaseinputy rho the tran x y rhothe MATLAB SDU 33 补充 函数的递归调用 递归调用 函数调用其本身称为函数的递归调用例如求n 阶乘本身是用递归形式进行定义的 因此定义阶乘函数文件可以采用递归调用 MATLAB SDU 34 functionf factor n Ifn 1f 1 elsef factor n 1 n end MATLAB SDU 35 M文件和内部伪代码 调用M文件时 matlab会对该文件进行解析 并生成相应的内部伪代码 pseudocode pcode 存放在内存 再次调用时直接调用内存中的pcode 避免对相同M文件重复解析 可以用pcode产生伪代码 难以阅读 保密性好 MATLAB SDU 36 局部变量和全局变量 局部 Local 变量它存在于函数空间内部的中间变量 产生于该函数的运行过程中 其影响范围也仅限于该函数本身 全局 Global 变量通过global指令 MATLAB也允许几个不同的函数空间以及基本空间共享一个变量 这种被共享的变量称为全局变量 每个希望共享全局变量的函数或MATLAB基本工作空间 必须逐个用global对具体变量加以专门定义 没采用global定义的函数或基本空间 将无权享用全局变量 如果某个函数的运作使全局变量的内容发生了变化 那么其他函数空间以及基本工作空间中的同名变量也就随之变化 除非与全局变量联系的所有工作空间都被删除 否则全局变量依然存在 通常情况下会选取全部是大写字母的命名为全局变量名 全局变量的使用可以减少参数的传递 如果合理的使用可以提高程序执行效率 但是同时会损害函数的封装性 增加程序调试和维护的难度 因此一般不推荐使用 MATLAB SDU 37 参数传递 在调用函数时 MATLAB用两个永久变量nargin和nargout分别记录调用该函数时的输入实参和输出实参的个数 只要在函数文件中包含这两个变量 就可以准确地知道该函数文件被调用时的输入输出参数个数 从而决定函数如何进行处理 nargin在函数体内 用于获取实际输入宗量nargout在函数体内 用于获取实际输出宗量nargin fun 获取 fun 指定函数的标称输入宗量数nargout fun 获取 fun 指定函数的标称输出宗量数 MATLAB SDU 38 例3 4定义一个函数 当输入1个参数求其绝对值 输入2个参数求其平方根函数文件内容为functionc calnar a b calnar m example2 4 example2 4if nargin 1 c abs a elseif nargin 2 c sqrt a 2 b 2 end MATLAB SDU 39 主函数和子函数 多个函数代码 第一个是主函数 其它是子函数 主函数可外部调用 子函数不行 多个子函数排列次序可改变例 定义了一个stat函数 可以求一个向量的均值和均方差 stat m文件内容如下 function mean stdev stat x n length x mean avg x n stdev sqrt sum x avg x n 2 n functionmean avg x n mean sum x n MATLAB SDU 40 子函数的性质 每个子函数的第一行是其自己的函数申明行 在M函数文件内 主函数的位置不可改变 但子函数的排列次序可任意改变 子函数只能被处于同一文件的主函数或其他子函数调用 在M函数文件中 任何指令通过 名字 对函数进行调用时 子函数的优先级仅次于内装函数 同一文件的主函数 子函数的工作空间都是彼此独立的 各函数间的信息 或通过输入输出宗量传递 或通过全局变量传递 或通过跨空间指令传递 help lookfor等帮助指令都不能提供关于子函数的任何帮助信息 需要通过主函数 MATLAB SDU 41 二 MATLAB控制流 for循环结构while循环结构if else end分支结构switch case结构try catch结构控制程序流的其它常用指令 MATLAB SDU 42 1 for循环结构 forx array commands end MATLAB SDU 43 1 for循环结构 For循环的结构以及含义和其他高级语言的结构和含义基本一致 一个简单的for循环示例 和其他语言一样for循环可以有多重循环 例 利用for循环求1 2 3 5 的值 MATLAB SDU 44 例 利用for循环求1 2 3 5 的值sum 0 fori 1 5pdr 1 fork 1 ipdr pdr k endsum sum pdr end sum 153 MATLAB SDU 45 2 while循环结构 whileexpression commands end 与for循环设置固定循环次数来执行循环体相比较 MATLAB中的while循环是应用逻辑表达式来设置与判断是否执行循环体 循环次数依逻辑判断条件来决定 循环次数是不固定的 例 Fibonacci数组的元素满足Fibonacci规则 ak 2 ak ak 1 k 1 2 且a1 a2 1 现要求该数组中第一个大于10000的元素 MATLAB SDU 46 MATLAB SDU 47 a 1 1 a 2 1 i 2 whilea i 10000a i 1 a i 1 a i 当现有的元素仍小于10000时 求解下一个元素 i i 1 end i a i MATLAB SDU 48 Break continue语句 break语句用来退出for循环和while循环 注意 break用与终止for循环或者while循环结构 当在循环结构内执行该命令时 程序将跳出循环结构 执行循环结构外面的下一条语句 当为嵌套循环结构时 break只是跳出当前的循环结构 continue语句是控制的当前的一个循环 当在循环结构内执行continue命令后 程序将跳过此次循环剩下的那些执行语句 而继续执行下一次循环 在实际应用中 break和continue命令常跟if条件结构相结合例 用for循环指令来寻求Fibonacc数组中第一个大于10000的元素 MATLAB SDU 49 clearn 100 a ones 1 n fori 3 na i a i 1 a i 2 ifa i 10000a i break 跳出所在的一级循环 end end i MATLAB SDU 50 3 if else end分支结构 if else end指令为程序流提供了一种分支结构 它最常用的使用方式 MATLAB SDU 51 执行过程 MATLAB SDU 52 注意 在if条件结构中 elseif语句组部分可以没有 0个 也可以是多个 m个 但是else语句组部分最多是一个 if end的一一配对 也就是说有一个if引导的条件 必然需要一个end来对应 MATLAB SDU 53 例 一个简单的分支结构两个分支结构多分支结构 MATLAB SDU 54 一个简单的分支结构clearcost 10 number input number ifnumber 8sums number 0 95 cost end sums 两个分支结构x input x ifx 10t 0 0 1 pi 2 pi y x sin t plot t y elset 0 0 1 pi 2 pi y x 10 cos t plot t y end MATLAB SDU 55 多分支结构 设某批发贸易公司从事苹果批发 当客户购买5000件以上 15元 件 2500 5000件 16元 件 1000 2500件 17元 件 500 1000件 18元 件 250 500件 19元 件 100 250件 20元 件 50 100件 22元 件 10 50件 24元 件 9件以下 28元 件 试编写程序根据客户购买的件数 求出总的金额数 MATLAB SDU 56 n input 请输入客户拟购买苹果的件数 ifn 5000sum 15 n elseif5000 n MATLAB SDU 57 4 switch case结构 switchexcasetest1 commands1 casetest2 commands2 casetestk commandsk otherwise commands end MATLAB SDU 58 MATLAB SDU 59 例2 10用switch结构编写程序 实现判断键盘输入的任意一个实数是正数 负数还是零 用switch结构实现的程序内容如下 va input 请输入数值 t va abs va switchtcase 1disp 输入为负数 case1disp 输入为正数 otherwisedisp 输入为零 end MATLAB SDU 60 注意 switch后面的表达式的值既可以是数值 也可以是字符串 每一个case子句后面可以处理多个条件 此时 多个条件要用单元数组的形式表示 当其中switch的表达式的值只需要满足单元数组的任一值都会执行相对应的语言组 MATLAB SDU 61 例2 11用switch结构编写程序 实现判断键盘输入的任一1 10的数为偶数 奇数还是其他 用switch结构编写程序内容如下 va input 请输入数值 switchvacase 1 3 5 7 9 disp 输入为奇数 case 2 4 6 8 10 disp 输入为偶数 otherwisedisp 输入非奇非偶 end MATLAB SDU 62 划分区域 满分 100 优秀 90 99 良好 80 89 及格 60 79 不及格 60 fori 1 10 a i 89 i b i 79 i c i 69 i d i 59 i end c d c Name Jack Marry Peter Rose Tom 元胞数组Mark 72 83 56 94 100 Rank cell 1 5 创建一个含5个元素的构架数组S 它有三个域 S struct Name Name Marks Mark Rank Rank 根据学生的分数 求出相应的等级 fori 1 5switchS i Markscase100 得分为100时S i Rank 满分 列为 满分 等级casea 得分在90和99之间S i Rank 优秀 列为 优秀 等级caseb 得分在80和89之间S i Rank 良好 列为 良好 等级casec 得分在60和79之间S i Rank 及格 列为 及格 等级otherwise 得分低于60 S i Rank 不及格 列为 不及格 等级endend 将学生姓名 得分 登记等信息打印出来 disp 学生姓名 得分 等级 disp fori 1 5 disp S i Name blanks 6 num2str S i Marks blanks 6 S i Rank end MATLAB SDU 63 5 try catch结构 错误控制指令try commands1 组命令1总被执行 若正确 则跳出此结构catch commands2 仅当组命令1出现执行错误 组命令2才被执行end MATLAB SDU 64 例2 12判断下列程序的运行结果 程序内容如下 a 12 34 56 b 78 910 trya 2a ba bcatchdisp 发生错误 endlasterr MATLAB SDU 65 try catch结构应用实例clear N 4 A magic 3 设置3行3列矩阵A tryA N A N 取A的第N行元素catchA end A end 如果取A N 出错 则改取A的最后一行 endlasterr 显示出错原因 MATLAB SDU 66 echo命令 通常运行一个M文件时 文件中的命令不在屏幕上显示出来 如果M文件被执行之前 首先在MATLAB命令窗中输入echo命令并予以执行 然后再运行M文件 则M文件中的程序将在MATLAB命令窗中显示出来 但影响程序的执行速度 若要清除echo命令的影响 在MATLAB命令窗中键入 echooff 并回车即可 MATLAB SDU 67 Input 语句 Input 语句用在M文件中 执行到input 命令时 MATLAB暂停程序的执行 等待用户用键盘赋值给input 指定的变量 Input 语句还可用于等待用户输入MATLAB表达式和字符串 跟其他语句配合 可以实现 菜单 的功能 不过MATLAB中有专用的菜单设置命令 一般并不使用input 来建立 MATLAB SDU 68 keyboard命令 类似于input 但功能更强的keyboard命令是等待键盘输入内容 并把键盘输入的内容作为一个M文件来调用 例如 建立一个M文件us m x 0 0 01 pi 2 pi keyboard执行us m 计算机返回一个提示符 k此时 可以输入一个函数 但要注意这个函数自变量和因变量的对应关系 return命令返回正常状态 表示增加输入的文本内容输入完毕 这一条命令是必须的 MATLAB SDU 69 6 控制程序流的其它常用指令 1 MATLAB SDU 70 控制程序流的其它常用指令 2 MATLAB SDU 71 四 程序调试与优化 程序调试概述一般调试技巧程序调试器的使用程序设计的优化 MATLAB SDU 72 程序调试概述 MATLAB的调试器 Debugger 可以迅速地帮您找出程序错误所在 其功能包含 查询每一个函数的工作空间 Workspace 显示函数调用的堆栈 FunctionCallStack 一行一行地执行M文件 MATLAB SDU 73 一般调试技巧 一般而言 计算机程序可能发生的错误可分为两种 语法错误 SyntaxErrors 逻辑错误 LogicErrors 一般检测逻辑错误的方法 删除表达式最尾端的分号 若调试一个单独函数 可在其第一行的函数申明行加上 并定义输入变量的值 直接以脚本的方式来执行此M文件 并保留所有变量于MATLAB工作空间中 以便后续查看及调试 在程序中加入keyboard命令 可使程序执行至此处即暂停 并显示 k 的提示号 此时可任意查看或改变工作空间的任何变量 若要继续执行程序 可在命令窗输入 return 并按下Enter键 使用MATLAB程序调试器 MATLAB SDU 74 程序调试器的使用 M文本编辑器事实上就是调试器 包含了一系列的调试图标 更多的调试选项 则出现在工具栏的debug下拉式菜单中 调试器调试程序的一般步骤 MATLAB SDU 75 Step 单步运行命令 每单击一次 程序运行一次 但不进入函数 StepIn 单步运行命令 遇到函数进入函数体 单击一次运行一步 StepOut 停止单步运行 如果在函数中 跳出函数 如果不在函数 跳到下一个断点处 Run 运行 如果碰到断点会停在断点 变为 Continue 如果程序改变没保存 命令变为 SaveandRun GoUntilCursor 直接运行到光标所在位置 MATLAB SDU 76 Set ClearBreakpoint 设置或者清除断点 Set ModifyConditionalBreakpoint 设置或者修改条件断点 条件断点的设定可以使得程序在执行到设定的条件时停止 如果选择这个命令 会弹出如图3 10所示的条件断点设置或修改对话框Enable DisableBreakpoint 使断点有效或者消除断点 ClearBreakpointsinAllFiles 清除所有的断点StopIfErrors Warnings 在程序执行出现错误或者警告的时候 停止程序运行 进入程序调试 MATLAB SDU 77 程序调试举例 举例教材例3 13断点的设置和变量空间的检查 MATLAB SDU 78 MATLAB SDU 79 假设最初写出的程序内容如下 x input 请输入x变量的数值 y input 请输入y变量的数值 ifx 0endfv MATLAB SDU 80 MATLAB SDU 81 程序的优化 代码的计时的意义 促进代码的优化代码计时的方法1 tictoc计时方法2 etime t1 t2 计时方法 用clock计时 3 用cuptime计时方法 MATLAB SDU 82 程序的优化举例 程序代码的向量化和对矩阵的熟悉 充分利用Matlab矩阵处理的优势例 求1 1 2 1 3 1 1000000程序求和矩阵运算求和 MATLAB SDU 83 程序代码 矩阵的预先配置 内存的预先分配 例 a 1 2 3 4 5 6 7 8 9 optiony zeros 1 100 fori 1 100y i det a i end MATLAB SDU 84 小结 本节主要介绍了matlab语言程序设计基础掌握2类M文件 掌握M函数的创建和引用 掌握MATLAB控制流通过学习 应能编写简单程序 学会程序的调试 MATLAB SDU 85 思考题 2产生20个随机的二位随机整数 输出其中小于平均值的偶数
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!