第四章matlab程序设计

合集下载

《MATLAB_程序设计与应用》刘卫国高等教育出版社-第4章课后答案

《MATLAB_程序设计与应用》刘卫国高等教育出版社-第4章课后答案

第四章1.a=input('请输入一个4位数:');while (a<1000|a>9999)a=input('输入错误,请重新输入一个4位数:'); endb=fix(a/1000);c=rem(fix(a/100),10);d=rem(fix(a/10),10);e=rem(a,10);b=b+7;c=c+7;d=d+7;e=e+7;b=rem(b,10);c=rem(c,10);d=rem(c,10);e=rem(e,10);g=b;b=d;d=g;g=c;c=e;e=g;a=1000*b+100*c+10*d+e;disp(['加密后:',num2str(a)])2.逻辑表达式法:a=input('请输入a: ');b=input('请输入b: ');c=input('请输入c: ');x=0.5:1:5.5;x1=(x>=0.5&x<1.5);x2=(x>=1.5&x<3.5);x3=(x>=3.5&x<=5.5);y1=a.*(x.^2)+b.*x+c;y2=a*(sin(b)^c)+x;y3=log(abs(b+c./x));y=y1.*x1+y1.*x2+y3.*x3; disp(y)if语句法:a=input('请输入a: ');b=input('请输入b: ');c=input('请输入c: ');for x=0.5:1:5.5if x>=0.5 & x<1.5y=a.*(x.^2)+b.*x+celseif x>=1.5 & x<3.5y=a*(sin(b)^c)+xelseif x>=3.5 & x<5.5y=log(abs(b+c./x))endendswitch语句法:a=input('请输入a: ');b=input('请输入b: ');c=input('请输入c: ');for x=0.5:1:5.5switch floor(x/0.5)case {1,2}y=a.*(x.^2)+b.*x+c;case {3,4,5,6}y=a*(sin(b)^c)+x;case {7,8,9,10}y=log(abs(b+c./x)); enddisp(y)end3.x=fix(rand(1,20)*89)+10;x1=mean(x);n=find(rem(x,2)==0 & x<x1);disp(['小于平均数的偶数是:',num2str(x(n))]);4.(1)A=input('请输入20个数的一个行向量:');a=A(1);b=A(1);for m=Aif a>=ma=m;elseif b<=mb=m;endenddisp(['最小数是:',num2str(a)])disp(['最大数是:',num2str(b)])(2)A=input('请输入20个数的一个行向量:'); maxval=max(A)minval=min(A)5.s=0;for a=0:63c=2^a;s=s+c;enddisp(['2的0次方到63次方的和是:',num2str(s)])k=0:63n=2.^ks=sum(n)6.(1)sum1=0;for n=1:100x=(-1)^(n+1)*(1/n);sum1=sum1+x;enddisp(['当n取100时: sum=',num2str(sum1)])sum2=0;for n=1:1000x=(-1)^(n+1)*(1/n);sum2=sum2+x;enddisp(['当n取1000时: sum=',num2str(sum2)])sum3=0;for n=1:10000x=(-1)^(n+1)*(1/n);sum3=sum3+x;enddisp(['当n取10000时:sum=',num2str(sum3)])(2)sum1=0;n1=0;for n=1:2:100x=(-1)^n1*(1/n);sum1=sum1+x;n1=n1+1;enddisp(['当n取100时: sum=',num2str(sum1)])sum2=0;n2=0;for n=1:2:1000x=(-1)^n2*(1/n);sum2=sum2+x;n2=n2+1;enddisp(['当n取1000时: sum=',num2str(sum2)])sum3=0;n3=0;for n=1:2:10000x=(-1)^n3*(1/n);sum3=sum3+x;n3=n3+1;enddisp(['当n取10000时:sum=',num2str(sum3)])(3)sum1=0;for n=1:100x=1/(4^n);sum1=sum1+x;enddisp(['当n取100时: sum=',num2str(sum1)])sum2=0;for n=1:1000x=1/(4^n);sum2=sum2+x;enddisp(['当n取1000时: sum=',num2str(sum2)])sum3=0;for n=1:10000x=1/(4^n);sum3=sum3+x;enddisp(['当n取10000时:sum=',num2str(sum3)])(4)sum1=1;for n=1:100x=4*n*n/(2*n-1)/(2*n+1);sum1=sum1*x;enddisp(['当n取100时: sum=',num2str(sum1)])sum2=1;for n=1:1000x=4*n*n/(2*n-1)/(2*n+1);sum2=sum2*x;enddisp(['当n取1000时: sum=',num2str(sum2)])sum3=1;for n=1:10000x=4*n*n/(2*n-1)/(2*n+1);sum3=sum3*x;enddisp(['当n取10000时:sum=',num2str(sum3)])7.函数文件function f=fibnacci(n)if n==1 | n==2f=1;elsef=fibnacci(n-1)+fibnacci(n-2);end命令文件:shulie=[];for k=1:nshulie=[shulie fibnacci(k)];endshulie8.function [f1,f2]=juzhenji(x1,x2)f1=x1*x2;f2=x1.*x2;命令文件:clear alla=input('请输入一个矩阵:');b=input('请再输入一个矩阵:(注意:两矩阵要可以相乘)'); [f1,f2]=juzhenji(a,b);disp(f1)disp(f2)9.function sum=qiuhe(n,m)if n<=1sum=0;elsesum=n^m+qiuhe(n-1,m);end命令文件:clear ally=qiuhe(100,1)+qiuhe(50,2)+qiuhe(10,-1);disp(y)10.s=0;a=[12,13,14;15,16,17;18,19,20;21,22,23];for k=afor j=1:4if rem(k(j),2)~=0 s=s+k(j);endendendss =108(2)global xx=1:2:5;y=2:2:6;sub(y);xyfunction fun=sub(z) global xz=3*x;x=x+z;x =4 12 20 y =2 4 6。

第四章MATLAB程序设计

第四章MATLAB程序设计
while <条件1>
……
if <条件2>
break
end
……
end
2.continue语句
continue语句用于提前结束循环,可用于while和for语句结构中。
while <条件1>
……
if <条件2>
continue;
end
……
end
3.try
4.return
5.keyboard
6.pause
图4-2
在MATLAB中,选择语句结构由两种语句结构实现。
1.if语句
if语句是实现MATLAB选择结构的最主要形式,其基本格式为:
if表达式
程序模块1
else
程序模块2
end
在这里,如果表达式的值为真(非零值),则执行程序模块1,然后跳过程序模块2,向下执行后续语句;如果表达式的值为假(零值),则执行程序模块2,然后向下执行。
程序end
2.switch语句
虽然多分支if语句可以实现多重选择,但如果分支过多,则嵌套的if语句的层次就会很多,使程序可读性差,而使用swith语句就比较简洁明了,其格式为:
switch表达式
case数值1
程序模块1
case数值2
程序模块2
。。。
otherwise
程序模块n
其格式为:
for循环变量=起始值:步长:终止值
循环体
end
其中步长值可以在正实数和负实数范围内任意指定,默认值为1.对于正数,当循环变量的值大于终止值时,循环结束;对于负数,当循环变量的值小于终止值时,循环结束。
2.while语句循环结构

matlab第四章课件

matlab第四章课件

4.1.1 M文件的分类
M文件是由若干 Matlab 命令组合在一起构成的,它可 以完成某些操作,也可以实现某种算法
事实上,Matlab 提供的内部函数以及各种工具箱,都是利用 Matlab 语言编写的 M文件 用户也可以结合自己的工作需要,开发自己的程序或工具箱
M文件根据调用方式的不同可以分为两类: Script file:命令文件/脚本文件 Function file:函数文件
例2 输入x,y的值,并将它们的值互换后输出(swap.m)。 x=input('Input x please.'); y=input('Input y please.'); z=x; x=y; y=z; disp(x); disp(y); 例3 求一元二次方程ax2 +bx+c=0的根(root.m)。 a=input('a=?'); b=input('b=?'); c=input('c=?'); d=b*b-4*a*c; x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)]; disp(['x1=',num2str(x(1)),',x2=',num2str(x(2))]);
例如:
s=0; a=[12 13 14;15 16 17;18 19 20;21 22 23] for k=a s=s+k; end disp(s); 该程序的功能是求矩阵各行元素之和,执行结果是: 39 48 57 66
while语句
while expr (条件) statement(循环体语句) end 若expr成立,则执行循环体的内容,执行后 再判断条件是否为真,如果不成立则跳出循环体。

第4章MATLAB程序设计

第4章MATLAB程序设计
27
例4-12 求[100,200]之间第一个能被21整除的整数。 程序如下:
for n=100:200 if rem(n,21)~=0
continue end break end n
28
4.循环的嵌套 如果一个循环结构的循环体又包括一个循环结构,就
称为循环的嵌套,或称为多重循环结构。实现多重循环 结构仍用前面介绍的3种循环语句。因为任一循环语句 的循环体部分都可以包含另一个循环语句。
1.for语句 for语句的格式为:
for 循环变量=表达式1:表达式2:表达式3 循环体语句
end 其中表达式1的值为循环变量的初值,表达式2的值 为步长,表达式3的值为循环变量的终值。步长为1 时,表达式2可以省略。
21
例4-8 一个三位整数各位数字的立方和等于该数本 身则称该数为水仙花数。输出全部水仙花数。
end 执行过程是依次将矩阵的各列元素赋给循环变量,
然后执行循环体语句,直至各列元素处理完毕。 例3-10 写出下列程序的执行结果。
s=0;
a=[12,13,14;15,16,17;18,19,20;21,22,23];
for k=a
s=s+k;
end
disp(s');
24
2.while语句 while语句的一般格式为: while (条件) 循环体语句 end 其执行过程为:若条件成立,则执行循环体语句,执 行后再判断条件是否成立,如果不成立则跳出循环。
2500≤price<5000 10%折扣
5000≤price 14%折扣
输入所售商品的价格,求其实际销售价格。
17
程序如下:
price=input('请输入商品价格');

《MATLAB_程序设计与应用》刘卫国高等教育出版社-第4章课后答案

《MATLAB_程序设计与应用》刘卫国高等教育出版社-第4章课后答案

第四章1.a=input('请输入一个4位数:');while (a<1000|a>9999)a=input('输入错误,请重新输入一个4位数:'); endb=fix(a/1000);c=rem(fix(a/100),10);d=rem(fix(a/10),10);e=rem(a,10);b=b+7;c=c+7;d=d+7;e=e+7;b=rem(b,10);c=rem(c,10);d=rem(c,10);e=rem(e,10);g=b;b=d;d=g;g=c;c=e;e=g;a=1000*b+100*c+10*d+e;disp(['加密后:',num2str(a)])2.逻辑表达式法:a=input('请输入a: ');b=input('请输入b: ');c=input('请输入c: ');x=0.5:1:5.5;x1=(x>=0.5&x<1.5);x2=(x>=1.5&x<3.5);x3=(x>=3.5&x<=5.5);y1=a.*(x.^2)+b.*x+c;y2=a*(sin(b)^c)+x;y3=log(abs(b+c./x));y=y1.*x1+y1.*x2+y3.*x3; disp(y)if语句法:a=input('请输入a: ');b=input('请输入b: ');c=input('请输入c: ');for x=0.5:1:5.5if x>=0.5 & x<1.5y=a.*(x.^2)+b.*x+celseif x>=1.5 & x<3.5y=a*(sin(b)^c)+xelseif x>=3.5 & x<5.5y=log(abs(b+c./x))endendswitch语句法:a=input('请输入a: ');b=input('请输入b: ');c=input('请输入c: ');for x=0.5:1:5.5switch floor(x/0.5)case {1,2}y=a.*(x.^2)+b.*x+c;case {3,4,5,6}y=a*(sin(b)^c)+x;case {7,8,9,10}y=log(abs(b+c./x)); enddisp(y)end3.x=fix(rand(1,20)*89)+10;x1=mean(x);n=find(rem(x,2)==0 & x<x1);disp(['小于平均数的偶数是:',num2str(x(n))]);4.(1)A=input('请输入20个数的一个行向量:');a=A(1);b=A(1);for m=Aif a>=ma=m;elseif b<=mb=m;endenddisp(['最小数是:',num2str(a)])disp(['最大数是:',num2str(b)])(2)A=input('请输入20个数的一个行向量:'); maxval=max(A)minval=min(A)5.s=0;for a=0:63c=2^a;s=s+c;enddisp(['2的0次方到63次方的和是:',num2str(s)])k=0:63n=2.^ks=sum(n)6.(1)sum1=0;for n=1:100x=(-1)^(n+1)*(1/n);sum1=sum1+x;enddisp(['当n取100时: sum=',num2str(sum1)])sum2=0;for n=1:1000x=(-1)^(n+1)*(1/n);sum2=sum2+x;enddisp(['当n取1000时: sum=',num2str(sum2)])sum3=0;for n=1:10000x=(-1)^(n+1)*(1/n);sum3=sum3+x;enddisp(['当n取10000时:sum=',num2str(sum3)])(2)sum1=0;n1=0;for n=1:2:100x=(-1)^n1*(1/n);sum1=sum1+x;n1=n1+1;enddisp(['当n取100时: sum=',num2str(sum1)])sum2=0;n2=0;for n=1:2:1000x=(-1)^n2*(1/n);sum2=sum2+x;n2=n2+1;enddisp(['当n取1000时: sum=',num2str(sum2)])sum3=0;n3=0;for n=1:2:10000x=(-1)^n3*(1/n);sum3=sum3+x;n3=n3+1;enddisp(['当n取10000时:sum=',num2str(sum3)])(3)sum1=0;for n=1:100x=1/(4^n);sum1=sum1+x;enddisp(['当n取100时: sum=',num2str(sum1)])sum2=0;for n=1:1000x=1/(4^n);sum2=sum2+x;enddisp(['当n取1000时: sum=',num2str(sum2)])sum3=0;for n=1:10000x=1/(4^n);sum3=sum3+x;enddisp(['当n取10000时:sum=',num2str(sum3)])(4)sum1=1;for n=1:100x=4*n*n/(2*n-1)/(2*n+1);sum1=sum1*x;enddisp(['当n取100时: sum=',num2str(sum1)])sum2=1;for n=1:1000x=4*n*n/(2*n-1)/(2*n+1);sum2=sum2*x;enddisp(['当n取1000时: sum=',num2str(sum2)])sum3=1;for n=1:10000x=4*n*n/(2*n-1)/(2*n+1);sum3=sum3*x;enddisp(['当n取10000时:sum=',num2str(sum3)])7.函数文件function f=fibnacci(n)if n==1 | n==2f=1;elsef=fibnacci(n-1)+fibnacci(n-2);end命令文件:shulie=[];for k=1:nshulie=[shulie fibnacci(k)];endshulie8.function [f1,f2]=juzhenji(x1,x2)f1=x1*x2;f2=x1.*x2;命令文件:clear alla=input('请输入一个矩阵:');b=input('请再输入一个矩阵:(注意:两矩阵要可以相乘)'); [f1,f2]=juzhenji(a,b);disp(f1)disp(f2)9.function sum=qiuhe(n,m)if n<=1sum=0;elsesum=n^m+qiuhe(n-1,m);end命令文件:clear ally=qiuhe(100,1)+qiuhe(50,2)+qiuhe(10,-1);disp(y)10.s=0;a=[12,13,14;15,16,17;18,19,20;21,22,23];for k=afor j=1:4if rem(k(j),2)~=0 s=s+k(j);endendendss =108(2)global xx=1:2:5;y=2:2:6;sub(y);xyfunction fun=sub(z) global xz=3*x;x=x+z;x =4 12 20 y =2 4 6。

matlab课件第4讲-程序设计

matlab课件第4讲-程序设计
第24页,共43页。
(二)选择结构
根据给定的条件是否成立而分别执行不同的语句
Matlab 用于实现选择结构的语句有 if 和 switch 语句
if 语句
✓ 单分支
if expr (条件) statement (语句组)
end
✓ 双分支
if expr (条件)
statement1(语句组1)
y=input('Please input y=:');
[gam,the]=tran(x,y);
第15页,共43页。
举例(二)
例:利用函数的递归调用计算 n!
1,
n 1
n! n (n 1)!, n 1
% 函数文件 factor.m function f=factor(n) if (n<=1)
... ...
case exprm(表达式 m) statementm(语句组 m)
otherwise
statement (语句组)
end
第27页,共43页。
switch 语句(续)
当任意一个分支的语句执行完后,直接执行 switch 语句 后面的语句。 switch 子句后面的表达式可以是一个标量或字符 串;case 子句后面的表达式可以是标量或字符串, 也可以是一个单元(cell),此时表达式的值等于该
%fcircle 半径为r的圆的面积和周长
%r
圆半径
%s
圆面积
%p
圆周长
%编制时间:2010年8月30日
s=pi*r*r;
p=2*pi*r;
第12页,共43页。
几点说明
函数文件内定义的变量仅在函数文件内部起作用, 当函数文件执行完成后,这些内部变量将被清除

matlabch04matlab程序设计基础知识

matlabch04matlab程序设计基础知识

MATLAB数组操作
单击此处添加副标题
数组创建与访问
创建数组
使用方括号`[]`创建数组,元素之间用空格或 逗号分隔。例如,`A = [1 2 3; 4 5 6]`创建一 个2x3的数组。
访问数组元素
通过下标访问数组元素,下标从1开始。例如, `A(1,2)`访问数组A的第1行第2列元素。
访问数组子集
matlabch04matlab 程序设计基础知识
添加副标题
汇报人姓名


单击添加文本
单击添加文本
MATLAB程序设计概述
单击此处添加副标题
MATLAB简介
23% Option 1
M AT L A B 定 义
MATLAB是Matrix Laboratory (矩阵实验室)的缩写,是一款由 MathWorks公司开发的商业数学 软件。
工程和科学计算 MATLAB被广泛应用于工程和科学计算 领域,如信号处理、图像处理、控制系
统设计等。 算法开发与仿真 MATLAB支持算法开发和仿真,可用 于机器学习、深度学习、优化算法等
领域。
数据分析与可视化
MATLAB提供了丰富的数据分析和可 视化工具,可用于数据挖掘、统计分 析、数据可视化等方面。
数据类型 MATLAB支持多种数据类型,包括数值型(整数 和浮点数)、字符型、逻辑型、结构体和单元数 组等。
变量赋值 使用等号(=)进行赋值,例如`x = 5;`将数值5 赋给变量x。
运算符与表达式
用于比较两个值的大小关系,如等于 (==)、不等于(~=)、大于 (>)、小于(<)等。
MATLAB按照运算符优先级和结合性 规则对表达式进行求值。
02
01

《MATLAB程序设计》第4章数组及应用

《MATLAB程序设计》第4章数组及应用
数组在内 存中的地 址
0x0012FF68 a[0] 0x0012FF6C a[1] 0x0012FF70 a[2] 0x0012FF74 a[3]
数组元素
0x0012FF78 a[4]
0x0012FF7C a[5]
8
一维数组在内存中的存储形式
说明:
(1)数组名a表示内存首地址,是地址常量。
(2)数组a中每个数组元素占的内存空间根据 数组类型确定,整个数组占的内存为:数组元 素个数乘以每个元素所占内存空间如: int a[10]; 4×10=40 float b[20]; 4×20=80 double c[5]; 8×5=40 char d[8]; 1×8=8
第4章 数组
教学内容
数组的定义及应用
字符串处理函数
几个常用算法:排序算法(选择排序、
冒泡排序)
1
第4章 数组
重点、难点
数组的定义及应用
常用算法的设计(选择排序、
冒泡排序)
2
第4章 数组
教学目标
熟练掌握数组的定义及应用
掌握字符数组的定义及应用
掌握常用的字符串处理函数
熟练掌握几个常用算法:排序
算法(选择排序、冒泡排序)
分析:所谓转置就是将矩阵的行列互换,即将 a矩阵 的a[i][j]元素变成b矩阵的b[j][i]。
24
#include <iostream> using namespace std; int main() { int a[3][4] ={{1,2,3,4},{3,4,5,6},{5,6,7,8}}; int b[4][3],i,j; for(i=0;i<3;i++) //输出二维数组a[3][4] { for(j=0;j<4;j++) cout<<a[i][j]<<" "; cout<<endl; } for(i=0;i<4;i++) //将矩阵a转置给矩阵b for(j=0;j<3;j++) b[i][j]=a[j][i]; for(i=0;i<4;i++) //输出二维数组b[4][3] { for(j=0;j<3;j++) cout<<b[i][j]<<" "; cout<<endl; } return 0;}
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第四章 Matlab 程序设计
3 循环结构
(1) for语句
格式
for 循环变量=表达式1:表达式2:表达式3 循环体语句 end 说明: 1. 表达式1的值为循环变量的初值,表达式2的值为步长,表 达式3的值为循环变量的终值。 2. 步长为1时,表达式2可以省略。
第四章 Matlab 程序设计
第四章 Matlab 程序设计
主要内容:
4.1 4.2 4.3 4.4 M文件 Matlab的程序结构 Matlab文件操作 Matlab程序设计
第四章 Matlab 程序设计
matlab的工作模式
指令驱动模式 通常matlab以指令驱动模式工作,即在matlab 窗 口下当用户输入单行指令时,matlab 立即处理这条指 令,并显示结果,这就是matlab命令行模式。 命令行模式操作时,matlab窗口只允许一次执行一 行上的一个或几个语句。 1 在matlab窗口输入数据和命令进行计算时,当处理 复杂问题和大量数据时是不方便的。 命令行方式程序可读性差,而且不能存储,对于复杂 的问题,应编写成能存储的程序文件。
说明: 1. 输出格式控制同c语言 2. 输出项可以是变量或表达式
x=pi;m=2; sprintf('x1=%f x2=%4.3f\n x3=%10.9f', (1+sqrt(5))/2,x,pi) sprintf(‘%d’,round(x)) %舍为最接近的整数 sprintf('%s','hello') S=sprintf('The array is %dx%d.',m,3) ; disp(S)
m文件有两类 1.脚本文件(Script File) : 独立的m文件 2.函数文件(Function File): 可调用的m文件
脚本文件是一串matlab命令的集合,完成制定的功能,变量空间是 workspace; 函数文件是一个黑箱,根据输入作出输出,变量空间是独立的函数变量空间, 在函数运行完成后关闭。
格式 [A,COUNT]=fread(fid,size, precision)
第四章 Matlab 程序设计
写二进制文件
格式
COUNT=fwrite (fid, A, precision)
说明: 1. COUNT返回所写的数据元素个数。 2. fid为文件句柄。 3. A用来存放写入文件的数据,
4. precision用于控制所写数据的类型,其形式与fread函数相同。
第四章 Matlab 程序设计
(2) switch语句 switch 表达式 case 表达式1 语句组1 case 表达式2 语句组2 …… case 表达式m 语句组m otherwise 语句组n end
说明: 1. 当表达式的值等于表达式1的值 时,执行语句组1。 2. 当表达式的值等于表达式m的值 时,执行语句组m。 3. 当表达式的值不等于case所列的 表达式的值时,执行语句组n。 4. 当任意一个分支的语句执行完后, 直接执行switch语句的下一句。
第四章 Matlab 程序设计
2 m文件模式 m文件是matlab所特有的使用该语言编写的磁盘文 件。 将matlab语句构成的程序存储成以m为扩展名的文 件,然后再执行该程序文件,这种工作模式称为程序文 件模式。
程序文件不能在指令窗口下建立,因为指令窗口只允 许一次执行一行上的一个或几个语句。
第四章 Matlab 程序设计
clear x=0:0.1:2*pi; fid=fopen(′example.mat′,′wb+′) count=fwrite(fid,x,′float′) fclose(fid) fid1=fopen(′example.mat′,′rb+′) t=fread(fid1,′float′);
y=[t,sin(t)];
第四章 Matlab 程序设计
(2)文本文件的读写操作 读文本文件 格式 A= fscanf (fid, format) [A,COUNT]= fscanf (fid, format, size) 说明: 1. A用以存放读取的数据。
2. COUNT返回所读取的数据元素个数。fid为文件句柄。
3. format用以控制读取的数据格式,由%加上格式符组成,常 见的格式符有%d,%f,%e,%c,%s等。 4. size为可选项,决定矩阵A中数据的排列形式。
第四章 Matlab 程序设计
2 文件的读写操作
文件数据格式有两种形式,一是二进制文件,二是文本文件。对不 同类型的文件读写是不同的。
(1)二进制文件的读写操作
读二进制文件 说明:
1. A用于存放读取的数据。
2. COUNT返回所读取的数据元素个数 3. fid为文件句柄 4. precision代表读写数据的类型:′int′ ′float′ ′char′等 5. size为可选项,若不选用则读取整个文件内容,若选用则它的值可以是下列 值: (1) N表示读取 N个元素到一个列向量。 (2) [M,N]表示读数据到M×N的矩阵中,数据按列存放。
4.1 M文件
m文件的语法类似于c语言,但又有其自身特点。它 只是一个简单的ASCII码文本文件,执行程序时逐行解释 运行程序,matlab是解释性的编程语言。 m文件可以使用系统认可的文本文件编辑器来建立m 文件。如dos下的edit,windows的记事本和word等。常用 且最为方便的是使用MATLAB提供的文本编辑器。
文件内容或建立一个新文件,读写;′a′表示在打开的文件末尾添加数据。
3. fid用于存储文件句柄值,句柄值用来标识该数据文件,其它函数可以利用 它对该数据文件进行操作。
第四章 Matlab 程序设计
(2)文件的关闭
格式
sta=fclose(fid)
说明:
该函数关闭fid所表示的文件。sta表示关闭文件操 作的返回代码,若关闭成功,返回0,否则返回–1。
第四章 Matlab 程序设计
写文本文件
格式
COUNT= fprintf(fid, format, A)
说明:
1. A存放要写入文件的数据。
2. 先按format指定的格式将数据矩阵A格式化,然后写入 到fid所指定的文件。格式符与fscanf函数相同。
第四章 Matlab 程序设计
例4.5 文件的操作
第四章 Matlab 程序设计
例4.3 求一元二次方程ax^2 +bx+c=0的根。 %解一元二次方程 %a b c方程系数 %x1 x2为方程的根 disp('pls input a b c') a=input('a='); b=input('b='); c=input('c='); d=b*b-4*a*c; x1=(-b+sqrt(d))/(2*a); x2=(-b-sqrt(d))/(2*a); disp('x1 x2 is') disp([x1,x2]) disp(sprintf('x1=%8.5f\nx2=%8.5f',x1,x2))
格式
b 双分支if语句:
格式
if 条件 语句组 end
if 条件 语句组1 else 语句组2 end
第四章 Matlab 程序设计
2 选择结构
(1) if语句 c 多分支if语句
格式
if 条件1 语句组1 elseif 条件2 语句组2 …… elseif 条件m 语句组m else 语句组n end
end
break end n
第四章 Matlab 程序设计
1 文件的打开与关闭
(1) 文件的打开
格式
说明:
fid= fopen(文件名,打开方式)
1. 其中文件名用字符串形式,表示待打开的文件。
2. 常见的打开方式有:′r′表示对打开的文件读数据;′r+′表示读写;′w′删除已 经存在的文件内容或建立一个新文件,并打开文件写;′w+′删除已经存在的
第四章 Matlab 程序设计
例4.2 求圆的周长和面积
peri_area.m
function [l s]=peri_area(r) %计算圆的周长和面积 l=2*pi*r; %周长 s=pi*r.^2; %面积
只有一句注释时
有多句注释时
第四章 Matlab 程序设计
4.2 Matlab的程序结构
第四章 Matlab 程序设计
(2) 数据的输出 disp 函数
调用格式
disp(输出项)
说明: 1. 输出项可以是变量或字符串。 2. 输出变量时,不显示变量名。
第四章 Matlab 程序设计
sprintf 函数:字符串格式化命令 主要功能是把格式化的数据写入某个字符串中
调用格式
S=sprintf(格式,输出项)
例4.1 绘制sin(x)*cos(x)图形
a.m
%绘制sin(x)*cos(x)图形 x=0:0.1:4*pi; y=sin(x).*cos(x); plot(x,y)
%注释部分,用以说明函数的作用及 有关内容,使用help命令时显示。只 显示程序中的第一句注释语
第四章 Matlab 程序设计
2 函数文件
控制跳过循环体中的某些语句。当在循环体内执行 到该语句时,程序将跳过循环体中所有剩下的语句,继 续下一次循环。
第四章 Matlab 程序设计
例4.4 求[100,200]之间第一个能被21整除的整数。 %计算100~200之间第一个能被21整除的整数 for n=100:200 if rem(n,21)~=0 continue %rem(x,y) :计算x./y的余数
第四章 Matlab 程序设计
相关文档
最新文档