GUI:图形用户界面是指有各种图形对象,如由菜单栏、控件等组成的用户界面。通过“选择”各种图像对象来实现对程序功能的控制。Matlab的gui的基本图形对象包括控制对象和菜单对象。再设计用户界面时,应选择恰当的图形对象,并将它们有逻辑地组织起来,使得界面容易操作和使用。 Guide控制板,属性编辑器,callback编辑器,菜单编辑器和位置调整工具 圆: 螺旋:
t=0:pi/100:2*pi; t=0:pi/50:10*pi; x=cos(t); plot3(sin(t),cos(t),t); y=sin(t); xlabel('sin(t)'); plot(x,y); ylabel('cos(t)'); axis square zlabel('t'); 数据:
【fid=fopen(‘penny.dat’,’r’); a=fread(fid);
status=fclose(fid);】
【fid=fopen(‘penny.dat’,’r’); a=fread(fid,100); status=fclose(fid);】
【fid=fopen(‘penny.dat’,’r’); a=fread(fid,[10,10]); status=fclose(fid);】
【fid=fopen(‘penny.dat’,’r’); a=fread(fid,10,’float’); status=fclose(fid);】
【fid =fopen('magic(5).bin', 'wb');
count=fwrite(fid,magic(5), 'integer*4'); status=fclose(fid);】 泰勒级数: clear all
x=input('输入变量') error=1;result=0;i=0; While (error>1e-5)
result1=result
result= result+x^i/factorial(i);
i=i+1; error=abs(result1-result); end result
输入一个变量。当变量小于0时,计算变量的平方,当变量大于等于0时,返回变量本身 function result=exe4(x) If (x<0)
result=x.*x; else result=x; end 解方程:
a=[1 5 3;8 -5 6;4 8 2];b=[7 4 9]'; a\b;
inv(a)*b; ans =
区别:共性:在MATLAB命令窗口中键入文件名,可以执行M文件中的规定的计算任务或某种功能。 区别一:程序M文件中创建的变量都是MATLAB工作空间中的变量,工作空间的其他程序或函数可以共享;而函数M文件中创建的所有变量除了全程变量外,均为局限于函数运行空间内的局部变量;——类似于主程序
区别二:函数M文件可以使用传递参数,所以函数M文件的调用式中可以有输入参数和输出参数,
而程序M文件则没有这种功能。 ——类似于函数 1.M文件的内容是由符合MATLAB语法的语句构成的。
函数M文件的第一行必须是以关键字function开始的函数说明语句。文件名一般为函数名。 程序M文件是众多命令语句的集中体现,不一定有特定的功能。
2.MAT文件是MATLAB的二进制数据文件,用于保存所使用的数据。是MATLAB特有的数据存储格式 ;
特点:按照MATLAB的矩阵方式来管理和记录数据 。对每一矩阵对象,MAT文件记录该矩阵对象的所有特性和各元素值。
3.MEX文件是经过MATLAB编译系统编译的二进制文件。
特点:可以被直接调入MATLAB系统中运行。 执行速度快。由于MATLAB是按边解释边运行的方式工作的,因此,M文件的执行速度要比MEX文件慢得多。
解方程:S=ax?bx?c syms a b c x
S = a*x^2 + b*x + c; solve(S)
ans=[1/2/a*(-b+(b^2-4*a*c)^(1/2))]
[1/2/a*(-b-(b^2-4*a*c)^(1/2))] b = solve(S,b) b =-(a*x^2+c)/x 函数solve
s = solve('cos(2*x)+sin(x)=1')
s =[ 0] [ pi][ 1/6*pi][ 5/6*pi] 微分方程:
dsolve('Dy=1+y^2') ans = tan(t+C1)
y = dsolve('Dy=1+y^2','y(0)=1') y =tan(t+1/4*pi)
y = dsolve('D2y=cos(2*x)-y','y(0)=1','Dy(0)=0', 'x') y=(1/2*sin(x)+1/6*sin(3*x))*sin(x)+(1/6*cos(3*x)-1/2*cos(x))*cos(x)+4/3*cos(x)
[f,g] = dsolve('Df=3*f+4*g, Dg =-4*f+3*g', 'f(0) = 0, g(0) = 1')
f =exp(3*t)*sin(4*t) g =exp(3*t)*cos(4*t)
2
第二篇:matlab资料总结 华北电力大学
第一章:
一、M文件:
以字母m为其扩展名 ,是ASCII码文本文件。分为两类:程序M文件,简称M文件;函数M文件,或简称为函数(包括内部函数)。M文件的内容是由符合MATLAB语法的语句构成的。函数M文件的第一行必须是以关键字function开始的函数说明语句。文件名一般为函数名。程序M文件是众多命令语句的集中体现,不一定有特定的功能。
二、两类M文件的异同
共性:在MATLAB命令窗口中键入文件名,可以执行M文件中的规定的计算任务或某种功能。
区别一:程序M文件中创建的变量都是MATLAB工作空间中的变量,工作空间的其他程序或函数可以共享;而函数M文件中创建的所有变量除了全程变量外,均为局限于函数运行空间内的局部变量;——类似于主程序
区别二:函数M文件可以使用传递参数,所以函数M文件的调用式中可以有输入参数和输出参数,而程序M文件则没有这种功能。 ——类似于函数
三、帮助命令
MATLAB帮助命令包括help、lookfor以及模糊查询。
1.help命令
在MATLAB 6.5命令窗口中直接输入help命令将会显示当前帮助系统中所包含的所有项目,即搜索路径中所有的目录名称。同样,可以通过help加函数名来显示该函数的帮助说明。
2.lookfor命令
help命令只搜索出那些关键字完全匹配的结果,lookfor命令对搜索范围内的M文件进行关键字搜索,条件比较宽松。
lookfor命令只对M文件的第一行进行关键字搜索。若在lookfor命令加上-all选项,则可对M文件进行全文搜索。
3.模糊查询
MATLAB 6.0以上的版本提供了一种类似模糊查询的命令查询方法,用户只需要输入命令的前几个字母,然后按Tab键,系统就会列出所有以这几个字母开头的命令。
四、获得帮助:
方便的在线帮助命令,可提供各个命令的用法指南。help命令还可提供有关MATLAB的一些重要信息。
1、 help 显示所有的帮助目录。2、 help 目录名显示出指定目录中的所有命令及其函数 :
如输入: help lang将列出与MATLAB编程语言有关的所有命令及其函数。3、help命令名或函数名或符号显示出有关指定命令/函数名/符号的详细信息,包括命令格式及注意事项。
第二章
一、矩阵元素的输入有那些方法?
(1) 以直接列出元素的形式输入;(2) 通过语句和函数产生; (3) 建立在M文件中;
(4) 从外部的数据文件中装入。在MATLAB语言中不必描述矩阵的维数和类型,由输入的格式和内容来确定的。 ——矩阵维不需数定义
2、掌握格式化输入数据的方法
3、总结MATLAB中用到的各种符号的含义及其用法。
四、算例
1、程序如下,写出矩阵C的运行结果
A=[1+2j 3+4j 9+10j; 5+6j 7+8j 11+12j]
A=A'
C=[A;[10 11]];
C(5)=0;
C =[ 1-2i 0 ; 3-4i 7-8i; 9-10i 11-12i ;10 11 ]
2、求解三元一次方程组
x1+5x2+3x3=7
8x1-5x2+6x3=4
4x1+8x2+2x3=9
a=[1 5 3;8 -5 6;4 8 2];
b=[7 4 9]';
a\b
inv(a)*b
ans =
0.2350
0.7607
0.9872
ans =
0.2350
0.7607
0.9872
3、补充题、写出程序中a、b的运行结果。
a=sprintf('Pi is %4.3f',pi);
X=[-1.3 length(a) sqrt(3) sin(3/2)]
b=X(1);
a=Pi is 3.142
b=-1.3
第三章
一、for循环语句
for v=expression
Statement
end
for i=1:n
x(i)=0,
End
n=length (t)
for j=1:n
for i=1:n
a (i,j)=t(i)^(n-j);
end
End
改:a(:,n)=ones(n,1);
for j=n-1:-1:1
a(:,j)=t.*a(:,j+1);
End
二、while循环语句
while expression
statemnent
End
求n,使n!是一个101位数字的最小值
n=1;
while prod(1:n)<1e100,n=n+1;end
三、if语句
if expression
statement
End
if expression
statement 1
else
statement 2
End
四、break语句:break一般出现在循环语句中,它表示跳出循环体(break所在的循环体),即结束循环%Classic “3n+1” problem from number theory
while 1
n=input(‘Enter n, negative quits…’);
if(n<=0),break,end
while n>1
if rem(n,2)==0
n=n/2
else
n=3*n+1
end
end
end
五、switch和case语句:对一事物的多重条件判断
switch expression
case condition_1
statement_1
case condition_2
statement _2
otherwise
statement _3
end
method = 'Bilinear';
switch lower(method)
case {'linear','bilinear'}
disp('Method is linear')
case 'cubic'
disp('Method is cubic')
case 'nearest'
disp('Method is nearest')
otherwise
disp('Unknown method.')
end
六、continue语句
用于for或 while 循环中,直接执行下一次循环过程,而不必执行本次循环中的其他语句。
fid = fopen('magic.m','r');
count = 0;
while ~feof(fid)
line = fgetl(fid);
if isempty(line) | strncmp(line,'%',1)
continue
end
count = count + 1;
end
disp(sprintf('%d lines',count));
1、编写程序利用泰勒级数计算exp(x),使计算精度为10-5
clear all
x=input('输入变量')
error=1;result=0;i=0;
While (error>1e-5)
result1=result; result= result+x^i/factorial(i);
i=i+1; error=abs(result1-result);
end
Result
2、编写程序求解:鸡兔同笼,头36,脚100,求鸡兔各多少?
clear all
cock=0;
hare=0;
for ii=0:1:36
cock=ii; hare=36-ii;
foot=2*cock+4*hare;
if(foot==100),
[cock hare],
end
End
解方程也可以
inv([1 1;2 4 ])
*[36;100]
3、编写程序计算下面的积分值
建立函数文件 exe3.m
function result=exe3(x)
result=x.*exp(x)./(x+1);
在命令窗口输入
quad(‘exe3’,1,5)
4、编写一个函数实现下面的功能
输入一个变量。当变量小于0时,计算变量的平方,当变量大于等于0时,返回变量本身
function result=exe4(x)
If (x<0)
result=x.*x;
else
result=x;
End
第五章
1、复向量式plot(z) :等效于plot(real(z),imag(z)) :
>> a=0:0.1:2*pi;
>> figure(4)
>> plot(sin(a)+i*cos(a))
>> xlabel('sin(x)')
>> ylabel('cos(x)')
混合式plot(X,Y)
X和Y是长度相等的向量,即参数式
X是向量,Y是矩阵,X的长度与矩阵Y的列或行数相等,将向量X与矩阵Y的每列或每行的向量相对应作曲线 (优先选列)X是矩阵,Y是向量,Y的长度等于X的列数或行数,则将X的每列或每行的向量与Y相对应作曲线(优先选列)
X和Y都是矩阵,维数相同,按列与列的对应方式来作图
2、
黄色 y 洋红色 m
蛋青色 c 红色 r
绿色 g 蓝色 b
白色 w 黑色 k
3、绘制函数peaks并且将它绕z轴旋转
clear all
[X,Y,Z]=peaks(30);
surfl(X,Y,Z);
axis([-3 3 -3 3 -10 10]);
% axis off
shading interp
colormap(hot);
m=moviein(15);
for ii=1:1:15
view(-37.5+24*(ii-1),30);
m(:,ii)=getframe;
end
movie(m,20,5)
Z = peaks;
surf(Z);
axis tight
set(gca,'nextplot','replacechildren');
% Record the movie
for j = 1:20
surf(sin(2*pi*j/20)*Z,Z)
F(j) = getframe;
end
% Play the movie twenty times
movie(F,20)
第六章
1、 GUI设计方法
大部分例子中的callBack属性值是由多条语句组成的字符串。当callBack要完成的工作很复杂时,这种方法是不适应的。
有效的改进的办法:
根据某些规则,单独编写图形界面的应用程序,将用户界面的设计局限在一个函数内,在这个函数中按不同的选择来创建用户界面对象和定义有关的CallBack。
具有一些设计优点:
(a)由于clear命令会清除工作空间中的有关变量,使用函数技巧可以保护图形界面中的有关变量不会被清除;
(b)由于callBack与对象创建函数分开,更易于编写和修改,故对callback函数进行debug时并不要求同时生成使用它的有关图形对象元;
(c)执行速度更快,因为MATLAB只需要编译函数,而无需将callback的值传送解释。