ImageVerifierCode 换一换
格式:DOC , 页数:37 ,大小:861KB ,
资源ID:4512436      下载积分:5 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4512436.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     索取发票    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(Matlab教学资料:第六章复数数据、字符数据和附加画图类型.doc)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

Matlab教学资料:第六章复数数据、字符数据和附加画图类型.doc

1、第六章 复数数据、字符数据和附加画图类型36.1 复数数据36.1.1 复变量(complex variables)46.1.2 带有关系运算符的复数的应用46.1.3 复函数(complex function)51. 类型转换函数52. 绝对值和幅角函数53. 数学函数5例6.166.1.4 复数数据的作图76.2 字符串函数(string functions)116.2.1 字符转换函数116.2.2 创建二维字符数组126.2.3 字符串的连接126.2.4 字符串的比较136.2.5 在一个字符串中查找/替换字符146.2.6 大小写转换156.2.7 字符串转换为数字166.2.8

2、数字转化为字符串16例6.2186.3 多维数组216.4 关于二维作图的补充说明236.4.1 二维作图的附加类型236.4.2 作图函数276.4.3 柱状图286.5 三维作图286.5.1 三维曲线作图296.5.2三维表面,网格,等高线图象306.6 总结336.6.1 好的编程习惯总结336.6.2 MATLAB函数与命令总结336.7 练习346.1346.2356.3356.4356.5356.6356.7356.8356.9366.10366.11366.12366.13366.14366.15366.16366.17376.18376.19376.2037第六章 复数数据、

3、字符数据和附加画图类型在第二章中,我们学习了MATLAB基础数据类型:double和char。MATLAB还有许多的附加数据类型,在本章,我们将会了解它们中的一个。我们要讨论的附加数据类型是MATLAB支持的复数数据。我们也将学习如何使用char数据类型,以及如何把MATLAB数组扩展为多维数组。本章还会涉及到MATLAB的附加画图类型。6.1 复数数据复数是指既包含实部又包含虚部的数。复数出现在许多的科研工作问题上。例如,在电器工程中,我们可以用复数代表交变电压,交变电流和阻抗。描述电器系统行为的公式经常用到复数。因为这是非常常见的,作为一个程师如果没有很好理解和运用复数,它无法工作。复数的

4、一般形式如下:C=a+bi其中C为复数,a和b均为实数,i代表。a,b分别为C的实部和虚部。由于复数有两个部分,所以它能在平面内标出。这个平面的横轴是实轴,纵轴是虚轴,所以复数在这个平面内为一个点,横轴为a,纵轴为b。用上面的方式表示一个复数,叫做直角坐标表示,为坐标的横轴与虚轴分别代表复数的实部与虚部。复数有在一平面内另一种表达方式,既极坐标表示,公式如下,c = a + bi = z其中z代表向量的模,代表辐角。直角坐标中的a,b和极坐标z,之间的关系为a = z cos(6.2)b = z sin(6.3)z = (6.4)(6.5)aba+bi实轴虚轴Paa+bi实轴虚轴Pz图6.1

5、直角坐标系中复数图6.2 极坐标系中复数MATLAB用直角坐标表达复数。每一个复数应有一对实数(a,b)组成。第一个数(a)代表复数的实部,第二个数(b)代表复数的虚部。如果复数c1=a1+b1i和复数c2=a2+b2i,那么它们的加减乘除运算定义如下。c1 + c2 = (a1 + a2) + (b1 + b2)i(6.6)c1 - c2 = (a1 - a2) + (b1 - b2)i(6.7)c1 c2 = (a1a2 - b1b2) + (a1b2 + b1a2)i(6.8)(6.9)当两个复数进行二元运算,MATLAB将会用上面的法则进行加法,减法,乘法和除法运算。6.1.1 复变量

6、(complex variables)当复数值赋值于一个变量名,MATLAB将自动创建一个复变量。创建复数的最简单方法是用MATLAB本自带的因有变量i或j,它们都被预定义为。例如下面的语句将复数4+3i赋值于c1。 c1 = 4 + 3*ic1 = 4.0000 + 3.0000i函数isreal可以判断一个数组包是实数组还是复数组。如果一个数组中的所有元素只有虚部,那么这个数组是复数组,并且isreal(array)将会返回一个0。6.1.2 带有关系运算符的复数的应用用关系运算符=来判断两复数是否相等,或用关系运算符=判断两复数是否不相等,这种情况是可能的。这些运算都会产生出我们所期望的

7、结果。例如,如果c1=4+3i和c2=4-3i,那么关系运算c1=c2将会产生0,关系运算c1=c2将会产生1。但是,比较运算符,=将不会产生我们所期望的结果。当复数进行此类关系运算时,只对复数的实部进行比较。例如,如果c1=4+i3和c2=4+i8,那么比较运算c1c2将会产生1,尽管c1的模要比c2的模小。如果我们需要用这些运算对两复数进行比较,我们更加关心的是两复数的模,而不只是实部。复数的模可以由abs固有函数计算得到(在下一节介绍,或者由公式(6.4)得到)。(6.4)如果我们对两复数进行比较,得到的结果将更加合理。abs(c1)abs(c2)将会产生0,因为c1的模大于c2的模。常

8、见编程错误当我们应用关系运算符对复数运算时,一定要小心。关系运算符,=只比较复数的实部,而不是它们的模。如果你要用这些关系运算符对一复数进行运算,比较两复数的模将更加常见。6.1.3 复函数(complex function)MATLAB中有许多的函数支持复数的运算。这些函数可分为三大类。1. 类型转换函数这些函数把数据从复数据类型转换为实数数据类型(double)。函数real将复数的实部转化为double型数据,把复数的虚部抛弃。函数imag把函数的虚部转化为相应的实数。函数描述conj(c)计算c的共共轭复数。如果c=a+bi,那么conj(c)=abi。real(c)返回复数c的实部i

9、mag(c)返回复数c的虚部isreal(c)如果数组c中没有一个元素有虚部,函数isreal(c)将返回1。所以如果一个数组c是复数组成,那么isreal(c)将返回1。abs(c)返回复数c模angle(c)返回复数c的幅角,等价于atan2(imag(c),real(c)表6.1 常见的支持复数运算的MATLAB函数2. 绝对值和幅角函数这些函数把复数转化它的极坐标形式。函数abs(c)用于计算复数c相应的绝对值,公式如下其中c=a+bi。函数angle(c)用下面的公式计算复数c的幅角angle(c)=atan2(imag(c), real(c)由它产生的角的取值范围为- calc_r

10、oot2This program solves for the roots of a quadratic equation of the form A*X2 + B*X + C = 0. Enter the coefficient A: 1Enter the coefficient B: 5Enter the coefficient C: 6The roots of this equation are:x1 = (-2.000000) +i (0.000000)x2 = (-3.000000) +i (0.000000) calc_root2This program solves for th

11、e roots of a quadratic equation of the form A*X2 + B*X + C = 0. Enter the coefficient A: 1Enter the coefficient B: 4Enter the coefficient C: 4The roots of this equation are:x1 = (-2.000000) +i (0.000000)x2 = (-2.000000) +i (0.000000) calc_root2This program solves for the roots of a quadratic equatio

12、n of the form A*X2 + B*X + C = 0. Enter the coefficient A: 1Enter the coefficient B: 2Enter the coefficient C: 5The roots of this equation are:x1 = (-1.000000) +i (2.000000)x2 = (-1.000000) +i (-2.000000)在三种不同的情况下,程序均给出了正确的结果。注意此程序与例3.2中的程序相比有多简单。复数数据的应用可大大简化我们的程序。6.1.4 复数数据的作图因为复数数据既包括实部又包括虚部,所以在MA

13、TLAB中复数数据的作图与普通实数据的作图有所区别。例如,考虑下面的函数y(t) = e -0.2t (cost + i sin t)(6.10)如果我们用传统的plot命令给这个函数作图,只有实数数据被作出来,而虚部将会被忽略。下面的语句得到图象如图6.3所示,注意出现了警告信息:数据的虚部被忽略t = 0:pi/20:4*pi;y = exp(-0.2*t) .* (cos(t) + i * sin(t);plot(t, y);title(bfPlot of Complex Function vs Time);xlabel(bfitt);ylabel(bfity(t);图6.3 用plot

14、(t, y)画出的y(t) = e -0.2t (cost + i sin t)图象如果函数的实部和虚部都需要的话,那么用户可以有几种选择。我们可以用下面的语句,在相同的时间轴内画出函数的图象(图6.4)。t = 0:pi/20:4*pi;y = exp(-0.2*t) .* (cos(t) + i * sin(t);plot(t, real(y),b-);hold on;plot(t, imag(y),r-);title(bfPlot of Complex Function vs Time);xlabel(bfitt);ylabel(bfity(t);legend(real,imaginar

15、y);hold off;图6.4 包含了y(t)的实部和虚部可选择的,函数的实部-虚部图可以被画出来。如果有一个复参数提供给plot函数它会自动产生一个函数的实部-虚部图。产生这类图的语句如下,产生的结果如图6.5所示。t = 0:pi/20:4*pi;y = exp(-0.2*t) .* (cos(t) + i * sin(t);plot(y,b-);title(bfPlot of Complex Function);xlabel(bfReal Part);ylabel(bfImaginary Part);图6.5 y(t)的的实部-虚部图最后,我们可以画出函数的极坐标图。产生这类图语句如下

16、,产生的结果如图图6.6所示。t = 0:pi/20:4*pi;y = exp(-0.2*t) .* (cos(t) + i * sin(t);polar(angle(y),abs(y);title(bfPlot of Complex Function);图6.6 y(t)的极坐标图6.2 字符串函数(string functions)一个MATLAB字符串是一个char型数组。每一个字型占两个字节。当字符串被赋值于一个变量时,这个变量将被自动创建为字符变量。例如语句str = This is a test;将会创建一个含有14个元素的数组。用whos命令查看它属性。 whos Name Si

17、ze Bytes Class str 1x14 28 char arrayGrand total is 14 elements using 28 bytes一个专门的函数ischar常用来判断一个变量是否为字符数组。如果是的话,那么函数较会返回1,如果不是,将会返回0。在下面的的小节中,我们将向大家介绍一些对字符串进行操作的函数。6.2.1 字符转换函数我们可以利用double函数把变量从字型转化为double型。所以,函数double(str)产生的结果为 x = double(str)x = Columns 1 through 12 84 104 105 115 32 105 115 32

18、 97 32 116 101 Columns 13 through 14 115 116我们可以利用char函数把double型数据转化为字符型数据。所以函数char(x)产生的结果为 x = char(x)x =This is a test6.2.2 创建二维字符数组我们可以创建二维字符数组,但一个数组中每一行的长度都必须相等。如果其中的一行比其他行短,那么这个字符数据将会无效,并产生一个错误。例如,下面的语句是非法的,因为他两行的长度不同。name = Stephen J. Chapman; Senior Engineer;创建二维字符数组的最简单的方法是用char函数。函数将会自动地寻找

19、所有字符串中最长的那一个。 name = char(Stephen J. Chapman,Senior Engineer)name =Stephen J. ChapmanSenior Engineer 二维字符数组也可以用函数strvcat,这个函数我会在下一节中介绍。好的编程习惯用char函数创建二维字符数组,我们就不用担心每一行的长度不相同了。我们可以应用deblank函数去除多余空格。例如,下面的语句去除name数组中第二行的多余空格,产生的结果与原来的进行比较。 line2 = name(2,:)line2 =Senior Engineer line2_trim = deblank(n

20、ame(2,:)line2_trim =Senior Engineer size(line2)ans = 1 18 size(line2_trim)ans = 1 156.2.3 字符串的连接函数strcat水平连接两字符串,忽略所有字符串末端的空格,而字符串的空格保留。例如,下面的语句为 result = strcat(string 1 ,String 2)result =string 1String 2产生的结果string 1String 2。函数strvcat用于竖直地连接两字符串,自动地把它转化为二维数组。这个函数将产生这样的结果 result = strvcat(Long Stri

21、ng 1 ,String 2)result =Long String 1 String 2 6.2.4 字符串的比较字符串与子字符串可以通过下面许多的方式进行比较。l 两个字符串,或两个字符串的部分,看两者是否相同l 两个独立的字符相比较看两者是否相同l 检查字符串判断每一个字符是字母,还是空格6.2.4.1 比较两字符串,看是否相同你可以利用MATLAB函数比较两字符串整体是否相同。它们是l strcmp判断两字符串是否等价l strcmpi忽略大小写判断两字符串是否等价l strncmp判断两字符串前n个字符是否等价l strncmpi忽略大小写判断两字符串前n个字符是否等价函数strcm

22、p比较字符串,包括字符串前面或后面的空格。如果两字符串完全相同,那么这个函数将返回1。否则,返回0。strcmpi与strcmp类似,但它忽略了大小写(即“a”与“A”看作相同的)函数strncmp用来比较两字符串前n个字符串,包含开头的空格,如果这个n个字符是相同的,它们将会返回1。否则它将会返回0。函数strncmpi与它相类似,但忽略了大小写。为了更好的理解这些函数,考虑下面的字符串str1 = hello;str2 = Hello;str3 = help;字符串str1和str2不相同,但它第一个字母大小不同。所以strcmp将返回0,strcmpi将返回1。 c = strcmp(s

23、tr1,str2)c = 0 c = strcmpi(str1,str2)c = 1字符串str1和str3不相同,所以strcmp与strcmpi返回0。但是str1和str3的前三个字符是相同,所以按照下面的方式调用将会返回1。 c = strncmp(str1, str3, 2)c = 16.2.4.2 判断单个字符是否相等我们可以利用MATLAB关系运算符对字符数组中的每一个元素进行检测,看是否相同,但是我们要保证它们的维数是相同的,或其中一个是标量。例如,你可以用相等运算符(=)来检测两字符串是否相匹配。 a = fate; b = cake; result = a = bresul

24、t = 0 1 0 1所有的关系运算符(,=, a = isletter(mystring)a = 1 1 1 1 0 0 0 1在a中前四个元素和最后一个元素是1,因为它们对应的mystring中的字符是字母。函数isspace检测字符串中的每一个字符,将产生一个和字符串长度相同的输出变量,对应于空字符的向量元素为0。因为向量的第五个元素对应的是空格,所以向量的第五个元素的值为1。6.2.5 在一个字符串中查找/替换字符MATLAB提供了许多的函数,用来对字符串中的字符进行查找或替换。考虑字符串testtest = This is a test!;函数findstr返回短字符串在长字符串中所

25、有的开始位置。例如为了寻找test内的所有“is” position = findstr(test,is)position = 3 6字符串“is”在test内出现两次,开始位置分别为3和6。函数strmatch是另一种匹配函数。它用来查看二维数组行开头的字符,并返回那些以指定的字符序列为开头行号。它的基本形式如下result = strmatch(str,array);例如,我们用strvcat创建一个二维数组,array = strvcat(maxarray,min value,max value);那么下面的语句将会返回开始字符为“max”的行数。 result = strmatch(m

26、ax,array)result = 1 3函数strrep用于进行标准的查找和替换操作。它能找到一个字符串中的所有另一个字符串,并被第三个字符串替换。这个函数形式为result = strrep(str,srch,repl)其中str是被检测的字符串,srch是要查找到的字符串,repl是用于替代的字符串,例如, result = strrep(test,test,pest)result =This is a pest!函数strtok返回输入字符串中第一次出现在分隔符前面的所有字符。默认的分隔符为一系列的空白字符。strtok的形式如下token, remainder = strtok(st

27、ring,delim)其中string是输入字符串,delim是可选择的分隔符,token代表输入字符串中第一次出现在分隔符前面的所有字符,remainder代表这一行的其余部分。例如 token, remainder = strtok(This is a test!)token =Thisremainder = is a test!你可以利用函数strtok把一个句子转换为单词。例如,下面的代码从字符数组input_string中分离出每一个单词,并把每一个单词独立地存储在字符数组all_words的每一行中。function all_words = word(input_string)re

28、mainder = input_stringall_words = ;while (any(remainder) chopped, remainder = strtok(remainder); all_words = strvcat(all_words, chopped);end6.2.6 大小写转换函数upper和lower分别把一个字符串中所有转化大定和小写。例如 result = upper(This is test 1!)result =THIS IS TEST 1! result = lower(This is test 2!)result =this is test 2!注意在大小

29、转换时,数字和符号不受影响。6.2.7 字符串转换为数字MATLAB把由数字组成的字符串转化为数字要用到函数eval。例如,字符串“3.141592”能用下面的语句把它转换为数字。 a = 3.141592; b = eval(a)b = 3.1416 whos Name Size Bytes Class a 1x8 16 char arrayGrand total is 8 elements using 16 bytes字符串可以用sscanf函数转化为数字。这个函数根据格式化转义字符转化为相应的数字。这个函数最简单的形式如下value = sscanf(string, format)其中,

30、string是要转化的字符串,format是相应的转义字符。函数sscanf两种最普通的转义序是“%d”,“%g”,它们分别代表输出为整数或浮点数。这个函数更多的细节我们将在第8章介绍。在作图中,创建一个复杂的标题或标签,它是非常有用的。下面的例子用于说明函数sscanf的应用。 value1 = sscanf(3.141593,%g)value1 = 3.1416 value2 = sscanf(3.141593,%d)value2 = 36.2.8 数字转化为字符串MATLAB中有许多的字符串/数字转换函数把数字转化为相应的字符串。我们在这里只看两个函数num2str和int2str。考虑

31、标量xx = 5317;在默认的情况下,MATLAB把数x作为一个11的double数组,它的值为5317。函数int2str(integer to string)所这个标量转化为14的字符数组,包含有字符串“5317”。 x = 5317; y = int2str(x); whos Name Size Bytes Class x 1x1 8 double array y 1x4 8 char arrayGrand total is 5 elements using 16 bytes函数num2str为输出字符串的格式提供更多的控制。第二个可选择的参数可以对输出字符串的数字个数进行设置或指定一

32、个实际格式。例如 p = num2str(pi,7)p =3.141593 p = num2str(pi,%10.5e)p =3.14159e+000函数int2str和num2str对作图标签是非常有用的。例如,下面的语句用num2str生成图象的标签。function plotlabel(x,y)plot(x,y)str1 = num2str(min(x);str2 = num2str(max(x);out = Value of f from str1 to str2;xlabel(out);还有一些转换函数,用于把数字值从十进制转化另一种数制,例如二进制或十六进制。例如函数dec2hex

33、把一个十进制数转化为相应的十六进制字符串。此类的函数还有hex2num,hex2dec,bin2dec,dec2bin,base2dec,你可以通过MATLAB网上帮助来获取这些函数的作用和使用方法。MATLAB函数mat2str可以把一个数组转化为相应的MATLAB能运算字符串。这个字符串可以是eval函数的输入,函数eval对这个字符串的运算和直接在命令窗口键入效果是一样的。例如,我们定义一个数组如下 a = 1 2 3; 4 5 6a = 1 2 3 4 5 6函数mat2str运行得到的结果为 b = mat2str(a)b =1 2 3;4 5 6最后,MATLAB中有一个专门的函数

34、sprintf等价于函数fprintf,唯一不同的是它的输出是一个字符串。这个函数对字符串的格式化操作的完全支持。例如, str = sprintf(The value of pi = %8.6f,pi)str =The value of pi = 3.141593在图象中,用这些函数创建复杂的标题或标签将会非常的有用。6.2.9总结普通的MATLAB字符串函数总结在表6.2中。表6.2普通的MATLAB字符串函数类别函数描述普通char(1)把数字转化为相应的字符值(2)把二维数组转化相应的字符串double把字符转化为相应的double值blanks创建一个由空格组成的字符串deblank

35、s去除字符串末端的空格字符检测ischar如果是一个字符数组,那么将会返回1isletter如果是字母表中的字母,那么将会返回1isspace如果是空白字符,那么将会返回1字符串操作strcat连接字符串strvcat竖直地连接字符串strcmp如果两字符串相等,那么函数将会返回1stricmp忽略大小写如果两字符串相等,那么函数将会返回1strncmp如果两字符串的前n个字母相等,那么函数将会返回1strncmpi忽略大小,如果两字符串的前n个字母相同,那么数将会返回1findstr在一个字符串中寻找另一个字符串strfind在一个字符串中寻找另一个字符串(版本6.1或以后的版本)strjust对齐字符串strmatch找字符串的区配strrep用一个字符串去替代另一个字符串strtok查找一字符串upper把字

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服