MATLAB操作基础 《信息隐藏实验教程》教学幻灯片 一
MATLAB简介 MATLAB(Matrix Laboratory,矩阵实验室)是在80年代由Cleve Moler和Lohn Little成立的Mathworks软件开发公司正式推向市场的,与Fortran语言和C等高级语言相比,MATLAB的语法规则更简单,更重要的是它更贴近人编程的思维方式。
MATLAB的数据类型 我们在MATLAB中常用以下5种数据类型:double(双精度数值)、char(字符)、sparse(稀疏矩阵)、storage(存储型)、cell(单元数组)。其关系如下: 字符型 存储型 数组 数值型 双精度 单元数组
MATLAB的变量、赋值语句与运算符 MATLAB有其自身的变量命名规则 。 MATLAB中就可以直接使用变量而不必事先声明。
选择结构的语法格式(与C语言对照) MATLAB: if a= =b if c~=d matlab=c; else matlab=~c; pascal=matlab; end C: if (a= =b) { if (c!=d) matlab=c; else matalb=!c; pascal=matlab; }
选择结构的语法格式(与C语言对照) MATLAB: C: switch 表达式(标量或字符串) switch 表达式(标量或字符串))case 常量表达式1 {case常量表达式1: 语句1 语句1;break; case 常量表达式2 case常量表达式2 : 语句2 语句2;break; … … otherwise/default default:语句n 语句n } end
循环结构的语法格式(与C语言对照) while循环的格式为: while a==b while(a==b) c=c+1; {c+=1;} end do-while循环的格式为: do do c=c+1 {c+=1;} while(a==b) while(a==b)
循环结构的语法格式(与C语言对照) for循环的格式为: for i=1 :2: 100 for(i=1;i<=100;i=i+2) c(i)=c(i)+1; { end c(i)=c(i)+1; } MATLAB中循环变量的步长缺省值是1。步长可以在正实数或负实数范围内任意指定,循环变量的值大于(步长为负数时小于)终止值时,循环结束。
函数参数的传递 根据函数内部结构的要求,输入参数的个数可以不同。只要是函数内部对某些输入参数作了规定的,有时可以缺省输入。 函数输出参数的数量也可以不定。请注意区别实参和形参。
MATLAB基本绘图 (plot) 例如: >>y=rand(100,1) >>plot(y); 绘图结果:
MATLAB基本绘图 (plot) 例如: >>x=1:0.1*pi:2*pi; >>y=sin(x); >>z=cos(x); >>plot(x,y,'-ob',x,z,':ms'); 绘图结果: 注意输入的第三个指标为图形显示属性的设置选项。
MATLAB基本绘图 (特殊的二维图形函数 ) semilogx 以x坐标为对数坐标绘制对数坐标曲线。 semilogy 以y坐标为对数坐标绘制对数坐标曲线。 loglog 绘制双对数坐标曲线 。 polar 绘制极坐标下的曲线 。 plotyy 绘制双纵坐标系(即双y轴坐标系)下的曲线 。
MATLAB基本绘图 (plot3) 例如: >>x=0:pi/50:10*pi; >>y=sin(x); >>z=cos(x); >>plot3(x,y,z); 绘图结果:
MATLAB基本绘图 (mesh) 例如: >>x=-8:0.5:8; >> y=x'; >> a=ones(size(y))*x; >> b=y*ones(size(x)); >>c=sqrt(a.^2+b.^2)+eps; >> z=sin(c)./c; >>mesh(z); 绘图结果:
MATLAB基本绘图 (图像标注) title 向图像中添加标题。 xlabel、ylabel、zlabel 为X、Y、Z轴添加标签。 text 在图像的指定位置显示文本。 gtext 用鼠标将文本放置在图像中 。 legend 向现有的图像中添加图例。
MATLAB基本绘图 (图像标注) 例如: >>t=0: 0.01*pi:2*pi; >> plot(t,sin(t)); >>title('0到2π的正弦曲线','FontSize',16); >> ylabel('sin(t)','FontSize',14); >>xlabel('t=0到2π','FontSize',14); >>text(pi,sin(pi),'\bullet\leftarrowsin(t)=0','FontSize',10); >> gtext('\bullet最小值sin(t)=-1'); 绘图结果:
MATLAB基本绘图 (多图重叠) 有的时候我们需要将多个曲线画在同一幅图上便于比较。这时我们可以使用hold on 和hold off函数来完成。比如: >>plot(x,y); >>hold on ; >>plot(a,b); >>hold off; 就将曲线x-y和a-b画在同一坐标下了。
MATLAB基本矩阵运算 (矩阵生成) 全0矩阵:由zero函数生成 全1矩阵:由one函数生成 单位矩阵:由eye函数生成 均匀分布的随机矩阵 :由rand函数生成 正态分布的随机矩阵 :由randn函数生成
MATLAB的文件处理 打开文件:由fopen函数完成 关闭文件:由fclose函数完成 读二进制数据 :由fread函数完成 写二进制数据 :由fwrite函数完成 读图像数据 :由imread函数完成 写图像数据 :由imwrite函数完成