MATLAB入门学习(一):基础准备

0、小叙闲言 

第一次学习MATLAB,主要是为了今后学习做图像处理的。现阶段主要是准备学一些基础的编程知识,对MATLAB有一定的了解和基础以后再学习图像处理,磨刀不误砍柴工!

1、思维导图 

为了在学习思路上清晰明了,学习运用软件做了这样的思维导图,可以对本章知识结构一目了然,主要是为了以后翻看起来可以很快回忆起看过学过的内容。

2、书中典例 

例1:用关键字input初始化变量

>> in1=input('enter data:')
enter data:1.23

 输入命令以后,回车,用户自行输入相应的初始化值

例2:子数组

>> arr2=[1 2 3;-2 -3 -4;3 4 5];
>> arr2(:,1:2:3)

ans =

     1     3
    -2    -4
     3     5

 只是一个简单的子数组输出,这里体现出“(:,1:2:3)”的意思是所有行、第一列和第三列组成的数组。

例3:改变默认格式

>> x=32.78578;
>> format hex;
>> x

x =

   404064947064ecea

  此处显示输出数据时采用了format来改变默认格式。MATLAB中数据的默认格式是精确到小数点后四位。

例4:disp函数

>> str=['the value of pi=' num2str(pi)];
>> disp(str)
the value of pi=3.1416

  disp函数使用时需要一个数组参数,本例中当然就是str了,将使值显示在命令窗口。如果数组中是字符,该字符串将会显示出来,本例中便是这样的。另外例子中包含了一个num2str(将一个数转化为字符串),这个函数常常和disp联合在一起使用。类似的函数还有int2str(将一个整数转化为字符串)。

例5:使用fprintf函数格式化输出数据

>> fprintf('the value of pi is %6.2f\n',pi)
the value of pi is   3.14
>> 

  转义序号%6.2代表在本函数中第一个数据项将占据6个字符宽度,小数点后有两位小数。另外类似于c语言,"\n"代表回车另起一行。另外需要注意的是fprintf函数只能显示复数的实部,所以会产生错误。例如下面的例子:

>> fprintf('the value of pi is %6.2f\n',2+2*i)
the value of pi is   2.00
>> 

例6:save命令和load命令

save命令用于保存当前matlab工作区的数据到一个硬盘文件。

>> x=[1.23 3.14 6.28;-5.1 7.00 0];
>> save x.dat x -ascii

  上面的代码得到一个文件x.dat,如下:

 

 

 

 

 

 

 

 

 

load命令和save命令正好相反,从硬盘文件加载数据到工作区,函数使用格式为:load filename,如下:

例7:MATLAB作图之画图入门

首先生成两个向量,分别由x、y表示,然后可以借助plot函数,简单代码如下:

>> x=0:1:10;
>> y=x.^2-10*x+15;
>> plot(x,y)

  结果如下:

 可以看到上图中只是一个简单的图形,现在在图像上加上标题以及x、y轴的信息,可以借助title、xlabel、ylabel等函数。如下:

>> x=0:1:10;
>> y=x.^2-10*x+15;
>> plot(x,y);
>> title('Plot of y=x.^2-10*x+15');
>> xlabel('x');
>> ylabel('y');
>> grid on

 结果如下:

 

代码中的grid on表示生成网格线。

例8:MATLAB作图之联合作图

联合做图其实很简单,这里不做很多解释了,代码如下:

x=0:pi/100:2*pi;
y1=sin(2*x);
y2=2*cos(2*x);
plot(x,y1,x,y2);

 结果如下:

 

例9:MATLAB作图之线色、线型、符号、图例

具体符号见下表:

          

书中的例子是这样的:

x = 0:1:10; 
y = x.^2 -10.*x +15; 
plot(x,y,'r--',x,y,'bo');

生成的图像如下

结合代码和图像来看:r--代表红色虚线;bo代表蓝色的圈。

另外,还可以使用legend来制作图例,基本格式如下:

legend(‘string1’,‘string2’,…,pos),其中string1,string2等是轨迹名,pos主要用来表示图例的位置。pos值意义具体如下:

书中的例子如下:

x=0:pi/100:2*pi; 
y1=sin(2*x); 
y2=2*cos(2*x); 
plot(x,y1,'k-',x,y2,'b--'); 
title(' Plot of f(x)=sin(2x) and its derivative'); 
xlabel('x'); 
ylabel('y'); 
legend('f(x)','d/dx f(x)') 
grid on;

  结果如下:

例10:MATLAB作图之对数尺度

matlab中对于坐标轴的取对数函数如下表:

这里一次运用四个函数进行处理,图像如下:

                                             

后两幅图由于负数的省略,只出现了一部分,但是从网格的疏密程度依然可以看出对数坐标对图像的影响。

3、总结  

书中出现了很多的符号和函数,总结如下表,方便学习运用:

4、感悟 

通过学习基础的编程知识,对比之前学过的c语言,matlab的编程是针对于数组的,所以肯定有些不一样的,对于这样的编程结构一时还适应不过来,但是觉得只要多编写一些程序,还是可以很快适应的,天道酬勤。另外,书中在最后给了一些实际问题中的例子,我看了一下,不难理解,这里就不再赘述了。

posted @ 2018-10-17 20:58  AmingGlaxy  阅读(2620)  评论(0编辑  收藏  举报