MATLAB的使用问题

2024-10-31 05:33:15
有5个网友回答
网友(1):

这个可能是因为你自己定义了一个bode.m的函数(在C:\Users\Documents\MATLAB目录下),与Matlab自带的函数名称相同(在MATLAB的安装目录下),产生冲突。
解决方法:
1、在command窗口中输入which bode all ,查看bode函数的路径(应该可以看到一个函数是在MATLAB安装目录下,另一个是在你自己建立的目录下)
2、删除或重命名你自己建立的函数文件

网友(2):

(x,y).其中x、y是1×n阶矩阵.也可以用格式plot(x1,y1,x2,y2,…)把多条曲线画在同一坐标系下.在这种格式中,每个二元对x-y的意义都与plot(x,y)的相同,每个二元对x-y的结构也必须符合plot(x,y)的要求.但二元对之间没有约束关系.以上三种格式中的x、y都可以是表达式,但表达式的运算结果必须符合上述格式要求.MATLAB的图形功能还提供了一组开关命令.关于颜色和线形用下面的方法进行控制.
plot(x,'r*') 表示用红色*号画线, plot(x,y,'b+') 表示用蓝色+号画线,
plot(x1,y1,'y-',x2,y2,'g:') 表示第一组用黄色实线画线,第二组用绿色点线画线.
MATLAB的线型字符有很多,可以随心所欲地把图画得很漂亮.下面几个线型字符大家可以选用:
S:小方块;H:六角星;D:钻石形;V:向下三角形;^:向上三角形.
MATLAB还提供了图形的加注命令:
title 题头标注. xlabel x轴标注.
ylabel y轴标注. gtext 鼠标定位标注.
grid 网格.
axis([xmin xmax ymin ymax]) []中给出x轴和y轴的最小、最大值
如果要把y1=6sint,y2=6cost,y3=sint2-tcost绘制在一张图上,则可输入如下的命令:
t=0:pi/12:2*pi;
y1=6*sin(t);y2=6*cos(t);y3=sin(t.^2)-t.*cos(t);
plot(t,y1,'r-',t,y2,'bo',t,y3,'k:') %用红线画y1,用蓝圈画y2,用黑虚线画y3.
如果还想在图上加一个题头,可继续键入命令:
title('曲线比较')
注:MATLAB中,%后面的语句起注释作用.特别要注意y3中的运算符号“.^”和“.*”,详情可通过help查阅,或查阅有关MATLAB的参考书.
命令polar(theta,rho)或polar(theta,rho,‘s’)绘制极坐标系的二维图形.详情可通过help查阅.
绘制三维图形
⑴ 空间曲线的绘制
绘制空间曲线的基本命令为:
plot3(x,y,z);plot3(x,y,z,'s')或plot3(x1,y1,z1,'s1',x2,y2,z2,'s2',…)
其中x,y,z是同维的向量或矩阵.当它们是矩阵时,以它们的列对应元素为空间曲线上点的坐标.s是线形、颜色开关,这一点与二维曲线时的情形相同.
⑵ 曲面的绘制
绘制空间曲面的基本命令为mesh(x,y,z).
如果x、y是向量,则要求x的长度=矩阵z的列维;y的长度=矩阵z的行维.以zij为竖坐标,x的第i个分量为横坐标,y的第j个分量为纵坐标绘网格图.
如果是同维矩阵,则数据点的坐标分别取自这三个矩阵.
meshc(x,y,z) 带等高线的网格图, waterfall(x,y,z) 瀑布水线图,
surf(x,y,z,'c') 可着色的曲面图,
surfc(x,y,z) 带等高线的可着色的曲面图.
以上这些命令都可用来绘制曲面图,用法与mesh完全一样.
例如:要想画马鞍面,可输入如下命令:
x=-3:1/16:3;y=x;
[x,y]=meshgrid(x,y); %(生成绘图时所需的x-y坐标)
z=-x.^2+y.^2;
mesh(x,y,z) %(或换为surfc(x,y,z) %带等高线的着色图)
3.多幅图形的创建
有时同一曲面或曲线需要从不同的角度去观察,或用不同的表现方式去表现,这时,为了便于比较,往往在一个窗口内画多幅图形.MATLAB用subplot命令实现这一目的.具体格式为:
subplot(m,n,p) 使用此命令后,把窗口分为m×n个图形区域,p表示当前区域号.
例如把sinx,cosx,atanx,sinxcosy画在一个窗口内,可键入:
x=0:pi/6:2*pi;y=x;
z1=sin(x);z2=cos(x);z3=atan(x);
subplot(2,2,1); plot(x,z1,'r',x,z2,'g')
subplot(2,2,2);plot(x,z3,'m')
subplot(2,2,3);[x,y]=meshgrid(x,y);z4=sin(x).*cos(y);
mesh(x,y,z4);subplot(2,2,4);surfc(x,y,z4)

网友(3):

我测试了一下,默认的情况下是可以通过的,画出了系统的波特图。
我用的版本是7.10.0.499 (R2010a)
你的那个问题,我估计是函数冲突了,你的C:\Users\Documents\MATLAB\目录下有一个应该是有一个bode.m文件,可能和Matlab\toolbox\中的那个文件冲突了。
解决方案:Documents\matlab\中的bode.m文件移走

网友(4):

你好,这是我用 R2008a 运行你命令得到的结果

网友(5):

================
x=[2001:2005];
y=[500.6 442.4 428.6 370.1 343.1];
%plot(x,y,'*')
plot(x,y,'*',x,y)
a=polyfit(x,y,1) %a是y=a(1)*x+a(2)

xx=[2001:0.5:2005]
y1=a(1)*xx+a(2)
hold on
plot(xx,y1,'o')

%=====================
运行结果:
a =

1.0e+004 *

-0.0039 7.7993

xx =

1.0e+003 *

2.0010 2.0015 2.0020 2.0025 2.0030 2.0035 2.0040 2.0045 2.0050

y1 =

494.4200 475.0550 455.6900 436.3250 416.9600 397.5950 378.2300 358.8650 339.5000