资源描述:
《matlab编程和其他语言的区别》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Matlab编程和其他语言的区别一、字符和字符串在MATLAB中不管是字符,还是字符串都是用单引号。而在C、C++、C#、Java等语言中,字符是用单引号的,字符串则必须用双引号。因此在MATLAB中如果需要在字符串中用到单引号的话,就要用两个单引号来代替。如:>>a='this''isanapple'a=this'isanapple同理,如果字符串中需要双引号的话,可以用四个单引号来代替。如下:>>b='I''''amTim'b=I''amTim在MATLAB中的字符串连接,我们可以使用一对中括号。当然,这种连接方式也适用于向量、矩阵等的连接。如下:>>c
2、=[ab]c=this'isanappleI''amTim>>a1=[12];b1=[34];>>c1=[a1b1]c1= 1 2 3 4>>c2=[a1;b1]c2= 1 2 3 4但是,对于字符串的连接不能使用加号(+)来进行。这点和在C++、C#、Java等语言中是不一样的。因为在MATLAB中这些字符串也是以矩阵的形式存储的,你要是用加号的话,需要两个矩阵的大小一致。比如:>>a2='hello';b2='mustb';>>a2+b2ans= 213 218 223 224 209但是,很明显
3、,加完之后都是一系列的值了。本来,这些字符串也是以数值的形式存储的。而我们要取的字符串中某一个字符的时候,也是很方便的,直接像引用矩阵的元素一样。如下:>>a2(1)ans=h>>a2(4)ans=l>>find(a2>'i')ans= 3 4 5可以看到,a2里面在字母i后面的字符有第3、4、5个字符,也就是llo了。在MATLAB中要将一个数字转换为字符可以用num2str,将字符转换为数字可以用str2num。如下:>>stra1=num2str(a1)stra1=1 2>>class(stra1)ans=char>>strb1='[
4、34]';>>str2num(strb1)ans= 3 4对于strb1,我们可以使用eval函数,该函数可以将字符串作为一个MATLAB命令去执行。如下:>>p=eval(strb1)p= 3 4相当于p=[34]。当然了,C语言里面的sprintf、fprintf函数我们都是可以在MATLAB中使用的。比如:>>sprintf('Timis%dyearsold.',24)ans=Timis24yearsold.至于fprintf函数,则需要用fopen去打开一个文件,然后写入数据进去。如下:>>fd=fopen('a.txt','
5、w+');>>fprintf(fd,'IamTim.');>>fprintf(fd,'Myageis%d',24);>>fclose(fd);然后,用MATLABEditor打开MATLAB当前目录下的a.txt就可以看到:但是,当你用记事本打开的时候会看到:这是因为在Windows上要想换行需要r,而不能单是。 二、if语句、for语句、switch语句、while语句、try-catch语句都以end结尾在MATLAB中,没有goto和do…loop和do…while语句。而且语句的结尾都是以end结尾的。>>t=4;>>if(t<5)
6、,disp('tissmallerthan5.'),endtissmallerthan5.当然,if语句也可以有else语句。>>if(t>5),disp('tisbiggerthan5.'),else,disp('tissmallerthan5.'),endtissmallerthan5.还可以用elseif。>>if(t>5),disp('tisbiggerthan5.'),elseif(t==5),disp('tisequal5.'),else,disp('tissmallerthan5.'),endtissmallerthan5.在MATLAB中,由
7、于矩阵的索引都是从1开始的,这点和C、C++、C#、JAVA等语言是不一样的。所以,在循环的时候建议从1开始循环,而且循环的时候不推荐用变量i和j。因为这两个变量在MATLAB中表示的是复数的虚部变量。当然,如果你的程序里面没有复数,就不用怕。如果有复数,就要小心了。之所以从1开始,是因为大多数时候我们使用循环是为了依次能访问到矩阵的每一个元素,所以,如果矩阵的索引出现了0,那么就会报出错误。所以,从1开始循环,是一种很好的习惯,而不是要求你必须这样做。而且,在for循环中,你的循环变量不仅可以是一个数,也可以是一个向量。看下面的程序:>>aa=[12;34
8、;56;78];>>fori=aa,disp(i),