Matlab基础操作问题

www.zhiqu.org     时间: 2024-06-01
1.1.2 MATLAB的主要功能
1.数值计算和符号计算功能
MATLAB以矩阵作为数据操作的基本单位,还提供了十分丰富的数值计算函数。
MATLAB和著名的符号计算语言Maple相结合,使得MATLAB具有符号计算功能。
<!--[if !supportEmptyParas]-->2.绘图功能
MATLAB提供了两个层次的绘图操作:一种是对图形句柄进行的低层绘图操作,另一种是建立在低层绘图操作之上的高层绘图操作。
3.编程语言
MATLAB具有程序结构控制、函数调用、数据结构、输入输出、面向对象等程序语言特征,而且简单易学、编程效率高。
4.MATLAB工具箱
MATLAB包含两部分内容:基本部分和各种可选的工具箱。
MATLAB工具箱分为两大类:功能性工具箱和学科性工具箱。<!--[if !supportEmptyParas]--> <!--[endif]-->

1.1.3 初识MATLAB
例1-1 绘制正弦曲线和余弦曲线。
x=[0:0.5:360]*pi/180;
plot(x,sin(x),x,cos(x));
<!--[if !supportLineBreakNewLine]-->

例1-2 求方程 3x4+7x3 +9x2-23=0的全部根。
p=[3,7,9,0,-23]; %建立多项式系数向量
x=roots(p) %求根

例1-3 求积分

quad('x.*log(1+x)',0,1)

例1-4 求解线性方程组。
a=[2,-3,1;8,3,2;45,1,-9];
b=[4;2;17];
x=inv(a)*b

1.2 MATLAB的运行环境与安装

1.2.1 MATLAB的运行环境
硬件环境:
(1) CPU
(2) 内存
(3) 硬盘
(4) CD-ROM驱动器和鼠标。
软件环境:
(1) Windows 98/NT/2000 或Windows XP
(2) 其他软件根据需要选用<!--[endif]-->

1.2.2 MATLAB的安装
安装MATLAB 6.5系统,需运行系统自带的安装程序setup.exe,可以按照安装提示依次操作。

1.3 MATLAB集成环境

1.3.1 启动与退出MATLAB集成环境
1.MATLAB系统的启动
与一般的Windows程序一样,启动MATLAB系统有3种常见方法:
(1)使用Windows“开始”菜单。
(2)运行MATLAB系统启动程序matlab.exe。
(3) 利用快捷方式。<!--[endif]-->

启动MATLAB后,将进入MATLAB 6.5集成环境。MATLAB 6.5集成环境包括MATLAB主窗口、命令窗口(Command Window)、工作空间窗口(Workspace)、命令历史窗口(Command History)、当前目录窗口(Current Directory)和启动平台窗口(Launch Pad)。

<!--[if !supportEmptyParas]--> <!--[endif]-->

2.MATLAB系统的退出
要退出MATLAB系统,也有3种常见方法:
(1) 在MATLAB主窗口File菜单中选择Exit MATLAB命令。
(2) 在MATLAB命令窗口输入Exit或Quit命令。
(3) 单击MATLAB主窗口的“关闭”按钮。<!--[endif]-->

1.3.2 主窗口
MATLAB主窗口是MATLAB的主要工作界面。主窗口除了嵌入一些子窗口外,还主要包括菜单栏和工具栏。
1.菜单栏
在MATLAB 6.5主窗口的菜单栏,共包含File、Edit、View、Web、Window和Help 6个菜单项。<!--[endif]-->

(1) File菜单项:File菜单项实现有关文件的操作。
(2) Edit菜单项:Edit菜单项用于命令窗口的编辑操作。
(3) View菜单项:View菜单项用于设置MATLAB集成环境的显示方式。
(4) Web菜单项:Web菜单项用于设置MATLAB的Web操作。
(5) Window菜单项:主窗口菜单栏上的Window菜单,只包含一个子菜单Close all,用于关闭所有打开的编辑器窗口,包括M-file、Figure、Model和GUI窗口。
(6) Help菜单项:Help菜单项用于提供帮助信息。<!--[endif]-->

2.工具栏
MATLAB 6.5主窗口的工具栏共提供了10个命令按钮。这些命令按钮均有对应的菜单命令,但比菜单命令使用起来更快捷、方便。<!--[endif]-->

1.3.3 命令窗口
命令窗口是MATLAB的主要交互窗口,用于输入命令并显示除图形以外的所有执行结果。
MATLAB命令窗口中的“>>”为命令提示符,表示MATLAB正在处于准备状态。在命令提示符后键入命令并按下回车键后,MATLAB就会解释执行所输入的命令,并在命令后面给出计算结果。<!--[endif]-->

一般来说,一个命令行输入一条命令,命令行以回车结束。但一个命令行也可以输入若干条命令,各命令之间以逗号分隔,若前一命令后带有分号,则逗号可以省略。例如
p=15,m=35
p=15;m=35<!--[endif]-->

如果一个命令行很长,一个物理行之内写不下,可以在第一个物理行之后加上3个小黑点并按下回车键,然后接着下一个物理行继续写命令的其他部分。3个小黑点称为续行符,即把下面的物理行看作该行的逻辑继续。
在MATLAB里,有很多的控制键和方向键可用于命令行的编辑。

<!--[if !supportEmptyParas]-->

1.3.4 工作空间窗口
工作空间是MATLAB用于存储各种变量和结果的内存空间。在该窗口中显示工作空间中所有变量的名称、大小、字节数和变量类型说明,可对变量进行观察、编辑、保存和删除。

<!--[if !supportEmptyParas]-->

1.3.5 当前目录窗口和搜索路径
1.当前目录窗口
当前目录是指MATLAB运行文件时的工作目录,只有在当前目录或搜索路径下的文件、函数可以被运行或调用。
在当前目录窗口中可以显示或改变当前目录,还可以显示当前目录下的文件并提供搜索功能。
将用户目录设置成当前目录也可使用cd命令。例如,将用户目录c:\mydir设置为当前目录,可在命令窗口输入命令:
cd c:\mydir

<!--[if !supportEmptyParas]-->

2.MATLAB的搜索路径
当用户在MATLAB命令窗口输入一条命令后,MATLAB按照一定次序寻找相关的文件。基本的搜索过程是:
(1) 检查该命令是不是一个变量。
(2) 检查该命令是不是一个内部函数。
(3) 检查该命令是否当前目录下的M文件。
(4) 检查该命令是否MATLAB搜索路径中其他目录下的M文件。

<!--[if !supportEmptyParas]-->

用户可以将自己的工作目录列入MATLAB搜索路径,从而将用户目录纳入MATLAB系统统一管理。设置搜索路径的方法有:
(1) 用path命令设置搜索路径。例如,将用户目录c:\mydir加到搜索路径下,可在命令窗口输入命令:
path(path,’c:\mydir’)

<!--[if !supportEmptyParas]-->

(2) 用对话框设置搜索路径
在MATLAB的File菜单中选Set Path命令或在命令窗口执行pathtool命令,将出现搜索路径设置对话框。通过Add Folder或Add with Subfolder命令按钮将指定路径添加到搜索路径列表中。
在修改完搜索路径后,则需要保存搜索路径。

<!--[if !supportEmptyParas]-->

1.3.6 命令历史记录窗口
在默认设置下,历史记录窗口中会自动保留自安装起所有用过的命令的历史记录,并且还标明了使用时间,从而方便用户查询。而且,通过双击命令可进行历史命令的再运行。如果要清除这些历史记录,可以选择Edit菜单中的Clear Command History命令。

<!--[if !supportEmptyParas]-->

1.3.7 启动平台窗口和Start按钮
MATLAB 6.5的启动平台窗口可以帮助用户方便地打开和调用MATLAB的各种程序、函数和帮助文件。
MATLAB 6.5主窗口左下角还有一个Start按钮,单击该按钮会弹出一个菜单,选择其中的命令可以执行MATLAB产品的各种工具,并且可以查阅MATLAB包含的各种资源。
<!--[if !supportLineBreakNewLine]--><!--[endif]-->

1.4 MATLAB帮助系统

1.4.1 帮助窗口
进入帮助窗口可以通过以下3种方法:
(1) 单击MATLAB主窗口工具栏中的Help按钮。
(2) 在命令窗口中输入helpwin、helpdesk或doc。
(3) 选择Help菜单中的“MATLAB Help”选项。

<!--[if !supportEmptyParas]-->

1.4.2 帮助命令
MATLAB帮助命令包括help、lookfor以及模糊查询。
1.help命令
在MATLAB 6.5命令窗口中直接输入help命令将会显示当前帮助系统中所包含的所有项目,即搜索路径中所有的目录名称。同样,可以通过help加函数名来显示该函数的帮助说明。

<!--[if !supportEmptyParas]-->

2.lookfor命令
help命令只搜索出那些关键字完全匹配的结果,lookfor命令对搜索范围内的M文件进行关键字搜索,条件比较宽松。
lookfor命令只对M文件的第一行进行关键字搜索。若在lookfor命令加上-all选项,则可对M文件进行全文搜索。

<!--[if !supportEmptyParas]-->

3.模糊查询
MATLAB 6.0以上的版本提供了一种类似模糊查询的命令查询方法,用户只需要输入命令的前几个字母,然后按Tab键,系统就会列出所有以这几个字母开头的命令。

<!--[if !supportEmptyParas]-->

1.4.3 演示系统
在帮助窗口中选择演示系统(Demos)选项卡,然后在其中选择相应的演示模块,或者在命令窗口输入Demos,或者选择主窗口Help菜单中的Demos子菜单,打开演示系统。

<!--[if !supportEmptyParas]-->

1.4.4 远程帮助系统
在MathWorks公司的主页(http://www.mathworks.com)上可以找到很多有用的信息,国内的一些网站也有丰富的信息资源。

<!--[if !supportEmptyParas]--> <!--[endif]-->

在语句间加个pause,运行时碰到pause就会暂停,按下空格以后继续
例如
x=0:0.1:10;
y=sin(x);
plot(x,y)
pause
x=-5:0.1:5;
y=x.^3+3*x.^2-5;
plot(x,y)

x=0:0.1:10;
y=sin(x);
plot(x,y)

x=-5:0.1:5;
y=x.^3+3*x.^2-5;
plot(x,y)
加分号这样好多东西可以不显示了
放在一个M文件里面是没有办法实现一个一个的
把每个小程序拷的COMMDAN窗口直接运行就可以了,也还能而方便的
并且你的涉及到画图每次图形会被覆盖的
可以用
hold on命令
或者分窗口

matlab基础问题~

x=-1:0.01:3;y=x.^2+x.*sin(x)+2;plot(x,y,'k','linewidth',2);hold allx0=1;y0=x0^2+x0*sin(x0)+2; %x1=1点for x1=[-0.5 0 0.5 1.5 2 ] y1=x1^2+x1*sin(x1)+2; xx=[-1.5 x1 3.5]; yy=(y1-y0)/(x1-x0)*(xx-x0)+y0; plot(xx,yy,'-o');endset(gca,'xlim',[-1 3]);plot(x0,y0,'ks');hold off;grid on;legend('f(x)=x^{2}+xsin(x)+2','x1=-0.5','x1=0',... 'x1=0.5','x1=1.5','x1=2','Location','southeast');

这是用离散相似法对传递函数进行离散化,然后进行求解的。

不知道为什么用这样的做法。MATLAB的最大优势就是提供了丰富的功能强大的工具箱,用几条简单的语句就可以解决常见的工程问题,而现在的这种做法可以说完全背离了MATLAB的设计初衷,没有什么意义。

另外,最后两行代码显然是有问题的,猜测其本意应该是:
plot(t,U,'--');
hold off
否则,u就是一个标量数,plot个毛线啊?前面已经hold on过了,画完图再on一次干什么?

帮你改一下吧:
DT=1;ST=2000;LP=ST/DT;
Ts=1;LP1=ST/Ts;LP2=Ts/DT;
X(1:6)=0;r=1;Kp=0.5;Ki=0.006;Kd=4;
n=0;
for i=1:LP1
e=r-X(6);
X(1)=X(1)+Ts*Ki*e;
u=Kp*e+X(1);
for j=1:LP2
X(2)=X(2)+DT*(-1/50*X(2)+0.9/50*u);
X(3:6)=X(3:6)+DT*(-1/50*X(3:6)+1/50*X(2:5))
n=n+1;
Y(n)=X(6);
t(n)=n*DT;
U(n)=u;
R(n)=r;
end
end
plot(t,R,':');
hold all
plot(t,Y);
plot(t,U,'--');
hold off

而如果用控制系统工具箱的函数,只需要几个语句就够了:
s=tf('s');
G=0.9/(1+50*s)^5;
Gc=Kp+Ki/s;
step(feedback(Gc*G,1))
而且精度更高,还可以从图中直接显示各性能指标,比上面的做法强太多。


#冯顷景# 有没有那位前辈给指点下几个MATLAB编程的基础问题
(13277125247): max函数,先返回一个矩阵当中的每一列的最大值,再返回每一列max的位置.比如A=[1,2,3;7,8,4;5,8,3]; maxs=[3,8,8] ind=[3,2,2] ind是index的缩写find函数帮助文档写的很详细

#冯顷景# matlab操作发生问题 -
(13277125247): case{}的参数必须与a相等,才执行后面的语句,不等时就成了otherwise,所以,case{}要列出所有的可能,不列出的统统归为otherwise

#冯顷景# matlab数组指针的基础性问题 -
(13277125247): 一种做法是设置计数器,例如 i=1; for n=1:-0.02:0 ...... y(i)=...... i=i+1; end 另一种做法是使用这样的循环:N=1:-0.02:0; for i=1:length(N) n=N(i); ...... y(i)=......end

#冯顷景# matlab的程序包如何使用及运行 -
(13277125247): 提供两个方式: 1.将包解压到一个目录,然后点击其中的一个文件,matlab打开编辑器,点编辑器上的运行按钮(快捷键:F5),Matlab提示你改变工作目录,选“是”(yes),程序执行. 2.将包的目录添加到Matlab的路径中去,点“File”—>“set path”—>"add"找到包目录,点左下角的"save".以后在工作区输入相应的函数名就可以了.注意,函数名最好不与Matlab的工具箱函数名不要重复.

#冯顷景# Matlab基础问题 急!!!!
(13277125247): 函数f的taylor展开式如下: f1=cos(b)-sin(b)*a*t (-1/2*cos(b)*a^2 c*d)*t^2 1/6*sin(b)*a^3*t^3 (1/24*cos(b)*a^4-1/6*c*d^3-1/6*c^3*d)*t^4-1/120*sin(b)*a^5*t^5 latex(f1)函数意思将函数f1表示成符号表达式 也就是你所写的那个 但是我得出的答案的: ...

#冯顷景# 学习matlab进行信号处理有什么要注意的 -
(13277125247): Matlab只是个工具,首要的还是专业知识,离散信号,连续信号,各种信号变换等等. 在此基础上,要熟悉Matlab的基本运算操作,随便找一本MATLAB入门的书籍都可以,但一定要熟悉矩阵的运算,这样才能优化计算的方法和运算的速度.

#冯顷景# 请教matlab使用时出现的一个问题. -
(13277125247): .mat不是程序 ,是数据文件.你不要点开它,直接 data = load('xxxx.mat'); 就可以把数据读到data里面了.当然也有可能是因为它太大了,需要更多的内存和缓存来读取,需要更高配置的机器.但并不是机器配置越高越好,因为MATLAB自己也有运算能力限制,比如精度,跟你用什么机器配置是没关系的.

#冯顷景# matlab画三维入门问题 -
(13277125247): 你是要画曲面吧?那就不是plot3函数,这个是画三围曲线的 [x, y] = meshgrid(-2:4/39:2); (步长是为了对应你的linspace(-2,2,40),可以改成0.2) z=sin(pi*sqrt(x.^2+y.^2)); mesh(x, y, z); (或者surf(x, y, z),看你要哪一种) 每个函数的作用,你一步步运行一下就知道效果了

#冯顷景# 求助matlab高手,都是基础问题 -
(13277125247): 1. syms x; int((x^复2)/(x+1))2. 你的例子xlnx x不能为负数制 可以使用某种数值zd积分公式, x = 0.1:0.1:1;y = x.*log(x);ans = trapz(x,y) % 梯形公式%%%%%%%%%%%%%后者直接积分syms x;int(x*log(x), x, 0.1,1);3. syms x t;ans1 = int(1+log(x)/((x*log(x))^2), x, 1, t)ans2 = diff(ans1);

#冯顷景# matlab新手问题 -
(13277125247): 应该没什么问题啊.如果不能显示,试一试加条命令:set(gcf,'backingstore','off')再把窗口尺寸缩小一些看看.