ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:57.93KB ,
资源ID:22445408      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

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

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(matlab与C语言的区别Word格式文档下载.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

matlab与C语言的区别Word格式文档下载.docx

1、a =is an apple同理,如果字符串中需要双引号的话,可以用四个单引号来代替。如下: b=Iam Timb =am Tim在MATLAB中的字符串连接,我们可以使用一对中括号。当然,这种连接方式也适用于向量、矩阵等的连接。 c=a bc =is an appleI a1=1 2;b1=3 4; c1=a1 b1c1 = 1 2 3 4 c2=a1;b1c2 = 2但是,对于字符串的连接不能使用加号(+)来进行。这点和在C+、C#、Java等语言中是不一样的。因为在MATLAB中这些字符串也是以矩阵的形式存储的,你要是用加号的话,需要两个矩阵的大小一致。比如: a2=hello;b2=m

2、ustb a2+b2ans = 213 218 223 224 209但是,很明显,加完之后都是一系列的值了。本来,这些字符串也是以数值的形式存储的。而我们要取的字符串中某一个字符的时候,也是很方便的,直接像引用矩阵的元素一样。 a2(1)h a2(4)l find(a2i) 4 5可以看到,a2里面在字母i后面的字符有第3、4、5个字符,也就是llo了。在MATLAB中要将一个数字转换为字符可以用num2str,将字符转换为数字可以用str2num。 stra1=num2str(a1)stra1 =1 class(stra1)char strb1=3 4 str2num(strb1)对于st

3、rb1,我们可以使用eval函数,该函数可以将字符串作为一个MATLAB命令去执行。 p=eval(strb1)p =相当于p=3 4。当然了,C语言里面的sprintf、fprintf函数我们都是可以在MATLAB中使用的。 sprintf(Tim is %d years old.,24)Tim is 24 years old.至于fprintf函数,则需要用fopen去打开一个文件,然后写入数据进去。 fd=fopen(a.txt,w+); fprintf(fd,I am Tim.nMy age is %dn,24); fclose(fd);然后,用MATLAB Editor打开MATLA

4、B当前目录下的a.txt就可以看到:但是,当你用记事本打开的时候会看到:这是因为在Windows上要想换行需要rn,而不能单是n。二、if语句、for语句、switch语句、while语句、try-catch语句都以end结尾在MATLAB中,没有goto和doloop和dowhile语句。而且语句的结尾都是以end结尾的。 t=4; if(tt is bigger than 5.),else,disp(还可以用elseif。),elseif(t=5),disp(t is equal 5.在MATLAB中,由于矩阵的索引都是从1开始的,这点和C、C+、C#、JAVA等语言是不一样的。所以,在循

5、环的时候建议从1开始循环,而且循环的时候不推荐用变量i和j。因为这两个变量在MATLAB中表示的是复数的虚部变量。当然,如果你的程序里面没有复数,就不用怕。如果有复数,就要小心了。之所以从1开始,是因为大多数时候我们使用循环是为了依次能访问到矩阵的每一个元素,所以,如果矩阵的索引出现了0,那么就会报出错误。所以,从1开始循环,是一种很好的习惯,而不是要求你必须这样做。而且,在for循环中,你的循环变量不仅可以是一个数,也可以是一个向量。看下面的程序: aa=1 2;3 4; 5 6;7 8; for i=aa,disp(i),end 1 3 7 6 8 aaaa = 5 7也就是说,i第一次的

6、值是aa的第一列,i第二次的值是aa的第二列。这样的话,这个循环变量i就不仅仅是一个数了,二是一列数。在MATLAB中,switch语句中是不用break的,而且默认的选项不是default,而是otherwise。a=5;switch(a), case 1, disp(a is 1. case 2,a is 2. case 5,a is 5. otherwise,sorry, i do not know.end还需要注意的是case后面没有分号,而C、C+、C#、Java等语言中是必须是分号的。在MATLAB中可是没有分号,我程序中的逗号,也可以是没有的。指向上面的程序,在MATLAB中的输

7、出是:a is 5.至于while语句的使用和C、C+、C#、Java等语言中的while基本上是一致的。b=0;while a b=b+a; a=a-1;baMatlab命令窗口的输出是这样的: 15 0try-catch语句一般是用来捕捉错误的。try a=input(Input a number: catch error(unknown error.当运行上面的程序,在MATLAB中输入: #? Error using = tim_try at 4unknown error.三、变量不用声明在MATLAB中的变量是可以不用声明的,这点和C类语言和Java是有很大区别的。但是,为了程序更清

8、晰和加快程序的执行速度,提供初始化和声明有时是必要的。不如,b=;for i=1:10 b=b i;在MATLAB命令窗口的输出如下: 2 6 8 9 10如果你不初始化b为空的话,如下:在命令窗口的输出如下: Undefined function or variable b.上面说过了,中括号可以用来合并向量的,这里变量b不存在,因此不能合并。所以会出错。四、没有+、-操作符在MATLAB中是没有+和-操作符的,因此需要转换。如a+; 可以转化为a=a+1;至于+a;你只需要将a=a+1的位置放到前面就可以了。五、点乘、点除,但没有点加、点减在点乘,是矩阵中的对应元素相乘。而不是矩阵的乘法。

9、点除也是同样道理,对应元素想除。至于点加,就相当于加法。因为加减法本身就是对应元素的加减。六、左除和右除在C类和Java等语言中,除法就是一个操作符(/),但在MATLAB中(/)和()是有区别的。/代表的是右除,代表的是左除。 A=1 2;3 4;B=5 6; C1=ABC1 = -3 -45所以A左除B,就相当于A的逆矩阵乘B。 inv(A)*B -3.0000 -4.00004.0000 5.0000那么可想而知,A右除B,就相当于A乘B的逆矩阵。 A/B 3.0000 -2.00002.0000 -1.0000 A*inv(B)七、MATLAB的编程思想当你用MATLAB来写程序的时候

10、,尽量以向量、矩阵为单位来考虑问题。也就是在MATLAB中常常能用一个点乘来代替多个循环的操作。也就是用向量化的操作来代替循环,这样能够大大的提高MATLAB程序的运行速度。举个简单的例子:clear allclca=round(rand(100)*100);b=round(rand(100)*100);tic f1=a.*b;toc for i=1:100, for j=1: f2(i,j)=a(i,j)*b(i,j); endElapsed time is 0.000035 seconds.Elapsed time is 0.001871 seconds.如果我们给f2初始化下,看看能不能

11、加快速度。f2=zeros(100);此时,命令窗口的输出如下:Elapsed time is 0.000024 seconds.Elapsed time is 0.000147 seconds.可以看到后面的循环的时间明显提高了很多。那么我们为上面的点乘运算的f1也初始化的话,速度会如何?Elapsed time is 0.000022 seconds.Elapsed time is 0.000146 seconds.可以看到速度提升的不是很明显。如果你将a和b的维数增长到10000的话,提示的速度就明显了很多了。八 函数和脚本的区别在别的语言中,程序应该没有这两个的分别吧。说白了,就是脚本就是一堆MATLAB命令的集合,而函数则是将实现某个功能的MATLAB程序封在一起,且需要有关键字function。脚本的工作空间就是整个MATLAB的工作空间,而每个function都有自己的一个工作空间,因此两个函数中可以有相同的变量名,他们是不会被混淆的,请放心。当然了,除非你用把它设置为global,不然,你不能应用另一个函数中的某个变量。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1