
是这样的,如果你再程序开始添加holdon这个的画,表示这之后的每一次作图都保留以前的图,这样就可以连续画图了
反之holdoff,表示打开这个之后,每次画图,删除以前的图,
MATLAB实用源代码
1图像的读取及旋转
A=imread('');%读取图像
subplot(2,2,1),imshow(A),title('原始图像');%输出图像
I=rgb2gray(A);
subplot(2,2,2),imshow(A),title('灰度图像');
subplot(2,2,3),imhist(I),title('灰度图像直方图');%输出原图直方图
theta = 30;J = imrotate(I,theta);% Try varying the angle, theta
subplot(2,2,4), imshow(J),title(‘旋转图像’)
2边缘检测
I=imread('C:\Users\HP\Desktop\平时总结\路飞jpg');
subplot(2,2,1),imshow(I),title('原始图像');
I1=edge(I,'sobel');
subplot(2,2,2),imshow(I1),title('sobel边缘检测');
I2=edge(I,'prewitt');
subplot(2,2,3),imshow(I2),title('prewitt边缘检测');
I3=edge(I,'log');
subplot(2,2,4),imshow(I3),title('log边缘检测');
3图像反转
MATLAB 程序实现如下:
I=imread('xianbmp');
J=double(I);
J=-J+(256-1);%图像反转线性变换
H=uint8(J);
subplot(1,2,1),imshow(I);
subplot(1,2,2),imshow(H);
4灰度线性变换
MATLAB 程序实现如下:
I=imread('xianbmp');
subplot(2,2,1),imshow(I);
title('原始图像');
axis([50,250,50,200]);
axis on;%显示坐标系
I1=rgb2gray(I);
subplot(2,2,2),imshow(I1);
title('灰度图像');
axis([50,250,50,200]);
axis on; %显示坐标系
J=imadjust(I1,[01 05],[]); %局部拉伸,把[01 05]内的灰度拉伸为[0 1]
subplot(2,2,3),imshow(J);
title('线性变换图像[01 05]');
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
K=imadjust(I1,[03 07],[]); %局部拉伸,把[03 07]内的灰度拉伸为[0 1]
subplot(2,2,4),imshow(K);
title('线性变换图像[03 07]');
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
5非线性变换
MATLAB 程序实现如下:
I=imread('xianbmp');
I1=rgb2gray(I);
subplot(1,2,1),imshow(I1);
title(' 灰度图像');
axis([50,250,50,200]);
grid on;%显示网格线
axis on;%显示坐标系
J=double(I1);
J=40(log(J+1));
H=uint8(J);
subplot(1,2,2),imshow(H);
title(' 对数变换图像');
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
4直方图均衡化
MATLAB 程序实现如下:
I=imread('xianbmp');
I=rgb2gray(I);
figure;
subplot(2,2,1);
imshow(I);
subplot(2,2,2);
imhist(I);
I1=histeq(I);
figure;
subplot(2,2,1);
imshow(I1);
subplot(2,2,2);
imhist(I1);
5 线性平滑滤波器
用MATLAB实现领域平均法抑制噪声程序:
I=imread('xianbmp');
subplot(231)
imshow(I)
title('原始图像')
I=rgb2gray(I);
I1=imnoise(I,'salt & pepper',002);
subplot(232)
imshow(I1)
title(' 添加椒盐噪声的图像')
k1=filter2(fspecial('average',3),I1)/255; %进行33模板平滑滤波
k2=filter2(fspecial('average',5),I1)/255; %进行55模板平滑滤波k3=filter2(fspecial('average',7),I1)/255; %进行77模板平滑滤波
k4=filter2(fspecial('average',9),I1)/255; %进行99模板平滑滤波
subplot(233),imshow(k1);title('33 模板平滑滤波');
subplot(234),imshow(k2);title('55 模板平滑滤波');
subplot(235),imshow(k3);title('77 模板平滑滤波');
subplot(236),imshow(k4);title('99 模板平滑滤波');
6中值滤波器
用MATLAB实现中值滤波程序如下:
I=imread('xianbmp');
I=rgb2gray(I);
J=imnoise(I,'salt&pepper',002);
subplot(231),imshow(I);title('原图像');
subplot(232),imshow(J);title('添加椒盐噪声图像');
k1=medfilt2(J); %进行33模板中值滤波
k2=medfilt2(J,[5,5]); %进行55模板中值滤波
k3=medfilt2(J,[7,7]); %进行77模板中值滤波
k4=medfilt2(J,[9,9]); %进行99模板中值滤波
subplot(233),imshow(k1);title('33模板中值滤波');
subplot(234),imshow(k2);title('55模板中值滤波 ');
subplot(235),imshow(k3);title('77模板中值滤波');
subplot(236),imshow(k4);title('99 模板中值滤波');
7用Sobel算子和拉普拉斯对图像锐化:
I=imread('xianbmp');
subplot(2,2,1),imshow(I);
title('原始图像');
axis([50,250,50,200]);
grid on; %显示网格线
axis on;%显示坐标系
I1=im2bw(I);
subplot(2,2,2),imshow(I1);
title('二值图像');
axis([50,250,50,200]);
grid on;%显示网格线
axis on;%显示坐标系
H=fspecial('sobel');%选择sobel算子
J=filter2(H,I1); %卷积运算
subplot(2,2,3),imshow(J);
title('sobel算子锐化图像');
axis([50,250,50,200]);
grid on; %显示网格线
axis on;%显示坐标系
h=[0 1 0,1 -4 1,0 1 0]; %拉普拉斯算子
J1=conv2(I1,h,'same');%卷积运算
subplot(2,2,4),imshow(J1);
title('拉普拉斯算子锐化图像');
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
8梯度算子检测边缘
用 MATLAB实现如下:
I=imread('xianbmp');
subplot(2,3,1);
imshow(I);
title('原始图像');
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
I1=im2bw(I);
subplot(2,3,2);
imshow(I1);
title('二值图像');
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
I2=edge(I1,'roberts');
figure;
subplot(2,3,3);
imshow(I2);
title('roberts算子分割结果');
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
I3=edge(I1,'sobel');
subplot(2,3,4);
imshow(I3);
title('sobel算子分割结果');
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
I4=edge(I1,'Prewitt');
subplot(2,3,5);
imshow(I4);
title('Prewitt算子分割结果 ');
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
9LOG算子检测边缘
用 MATLAB程序实现如下:
I=imread('xianbmp');
subplot(2,2,1);
imshow(I);
title('原始图像');
I1=rgb2gray(I);
subplot(2,2,2);
imshow(I1);
title('灰度图像');
I2=edge(I1,'log');
subplot(2,2,3);
imshow(I2);
title('log算子分割结果');
10Canny算子检测边 缘
用MATLAB程序实现如下:
I=imread('xianbmp');
subplot(2,2,1);
imshow(I);
title('原始图像')
I1=rgb2gray(I);
subplot(2,2,2);
imshow(I1);
title('灰度图像');
I2=edge(I1,'canny');
subplot(2,2,3);
imshow(I2);
title('canny算子分割结果');
11边界跟踪 (bwtraceboundary函数)
clc
clear all
I=imread('xianbmp');
figure
imshow(I);
title('原始图像');
I1=rgb2gray(I); %将彩色图像转化灰度图像
threshold=graythresh(I1); %计算将灰度图像转化为二值图像所需的门限
BW=im2bw(I1, threshold); %将灰度图像转化为二值图像
figure
imshow(BW);
title('二值图像');
dim=size(BW);
col=round(dim(2)/2)-90; %计算起始点列坐标
row=find(BW(:,col),1); %计算起始点行坐标
connectivity=8;
num_points=180;
contour=bwtraceboundary(BW,[row,col],'N',connectivity,num_points);
%提取边界
figure
imshow(I1);
hold on;
plot(contour(:,2),contour(:,1), 'g','LineWidth' ,2);
title('边界跟踪图像');
12Hough变换
I= imread('xianbmp');
rotI=rgb2gray(I);
subplot(2,2,1);
imshow(rotI);
title('灰度图像');
axis([50,250,50,200]);
grid on;
axis on;
BW=edge(rotI,'prewitt');
subplot(2,2,2);
imshow(BW);
title('prewitt算子边缘检测 后图像');
axis([50,250,50,200]);
grid on;
axis on;
[H,T,R]=hough(BW);
subplot(2,2,3);
imshow(H,[],'XData',T,'YData',R,'InitialMagnification','fit');
title('霍夫变换图');
xlabel('\theta'),ylabel('\rho');
axis on , axis normal, hold on;
P=houghpeaks(H,5,'threshold',ceil(03max(H(:))));
x=T(P(:,2));y=R(P(:,1));
plot(x,y,'s','color','white');
lines=houghlines(BW,T,R,P,'FillGap',5,'MinLength',7);
subplot(2,2,4);,imshow(rotI);
title('霍夫变换图像检测');
axis([50,250,50,200]);
grid on;
axis on;
hold on;
max_len=0;
for k=1:length(lines)
xy=[lines(k)point1;lines(k)point2];
plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');
plot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','yellow');
plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Color','red');
len=norm(lines(k)point1-lines(k)point2);
if(len>max_len)
max_len=len;
xy_long=xy;
end
end
plot(xy_long(:,1),xy_long(:,2),'LineWidth',2,'Color','cyan');
13直方图阈值法
用 MATLAB实现直方图阈值法:
I=imread('xianbmp');
I1=rgb2gray(I);
figure;
subplot(2,2,1);
imshow(I1);
title(' 灰度图像')
axis([50,250,50,200]);
grid on;%显示网格线
axis on; %显示坐标系
[m,n]=size(I1);%测量图像尺寸参数
GP=zeros(1,256); %预创建存放灰度出现概率的向量
for k=0:255
GP(k+1)=length(find(I1==k))/(mn);%计算每级灰度出现的概率,将其存入GP中相应位置
end
subplot(2,2,2),bar(0:255,GP,'g')%绘制直方图
title('灰度直方图')
xlabel('灰度值')
ylabel(' 出现概率')
I2=im2bw(I,150/255);
subplot(2,2,3),imshow(I2);
title('阈值150的分割图像')
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
I3=im2bw(I,200/255); %
subplot(2,2,4),imshow(I3);
title('阈值200的分割图像')
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
14 自动阈值法:Otsu法
用MATLAB实现Otsu算法:
clc
clear all
I=imread('xianbmp');
subplot(1,2,1),imshow(I);
title('原始图像')
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
level=graythresh(I); %确定灰度阈值
BW=im2bw(I,level);
subplot(1,2,2),imshow(BW);
title('Otsu 法阈值分割图像')
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
15膨胀 *** 作
I=imread('xianbmp'); %载入图像
I1=rgb2gray(I);
subplot(1,2,1);
imshow(I1);
title('灰度图像')
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
se=strel('disk',1); %生成圆形结构元素
I2=imdilate(I1,se); %用生成的结构元素对图像进行膨胀
subplot(1,2,2);
imshow(I2);
title(' 膨胀后图像');
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
16腐蚀 *** 作
MATLAB 实现腐蚀 *** 作
I=imread('xianbmp'); %载入图像
I1=rgb2gray(I);
subplot(1,2,1);
imshow(I1);
title('灰度图像')
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
se=strel('disk',1); %生成圆形结构元素
I2=imerode(I1,se); %用生成的结构元素对图像进行腐蚀
subplot(1,2,2);
imshow(I2);
title('腐蚀后图像');
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
17开启和闭合 *** 作
用 MATLAB实现开启和闭合 *** 作
I=imread('xianbmp'); %载入图像
subplot(2,2,1),imshow(I);
title('原始图像');
axis([50,250,50,200]);
axis on; %显示坐标系
I1=rgb2gray(I);
subplot(2,2,2),imshow(I1);
title('灰度图像');
axis([50,250,50,200]);
axis on; %显示坐标系
se=strel('disk',1); %采用半径为1的圆作为结构元素
I2=imopen(I1,se); %开启 *** 作
I3=imclose(I1,se); %闭合 *** 作
subplot(2,2,3),imshow(I2);
title('开启运算后图像');
axis([50,250,50,200]);
axis on; %显示坐标系
subplot(2,2,4),imshow(I3);
title('闭合运算后图像');
axis([50,250,50,200]);
axis on; %显示坐标系
18开启和闭合组合 *** 作
I=imread('xianbmp');%载入图像
subplot(3,2,1),imshow(I);
title('原始图像');
axis([50,250,50,200]);
axis on;%显示坐标系
I1=rgb2gray(I);
subplot(3,2,2),imshow(I1);
title('灰度图像');
axis([50,250,50,200]);
axis on;%显示坐标系
se=strel('disk',1);
I2=imopen(I1,se);%开启 *** 作
I3=imclose(I1,se);%闭合 *** 作
subplot(3,2,3),imshow(I2);
title('开启运算后图像');
axis([50,250,50,200]);
axis on;%显示坐标系
subplot(3,2,4),imshow(I3);
title('闭合运算后图像');
axis([50,250,50,200]);
axis on;%显示坐标系
se=strel('disk',1);
I4=imopen(I1,se);
I5=imclose(I4,se);
subplot(3,2,5),imshow(I5);%开—闭运算图像
title('开—闭运算图像');
axis([50,250,50,200]);
axis on;%显示坐标系
I6=imclose(I1,se);
I7=imopen(I6,se);
subplot(3,2,6),imshow(I7);%闭—开运算图像
title('闭—开运算图像');
axis([50,250,50,200]);
axis on;%显示坐标系
19形态学边界提取
利用 MATLAB实现如下:
I=imread('xianbmp');%载入图像
subplot(1,3,1),imshow(I);
title('原始图像');
axis([50,250,50,200]);
grid on;%显示网格线
axis on;%显示坐标系
I1=im2bw(I);
subplot(1,3,2),imshow(I1);
title('二值化图像');
axis([50,250,50,200]);
grid on;%显示网格线
axis on;%显示坐标系
I2=bwperim(I1); %获取区域的周长
subplot(1,3,3),imshow(I2);
title('边界周长的二值图像');
axis([50,250,50,200]);
grid on;
axis on;
20形态学骨架提取
利用MATLAB实现如下:
I=imread('xianbmp');
subplot(2,2,1),imshow(I);
title('原始图像');
axis([50,250,50,200]);
axis on;
I1=im2bw(I);
subplot(2,2,2),imshow(I1);
title('二值图像');
axis([50,250,50,200]);
axis on;
I2=bwmorph(I1,'skel',1);
subplot(2,2,3),imshow(I2);
title('1次骨架提取');
axis([50,250,50,200]);
axis on;
I3=bwmorph(I1,'skel',2);
subplot(2,2,4),imshow(I3);
title('2次骨架提取');
axis([50,250,50,200]);
axis on;
21直接提取四个顶点坐标
I = imread('xianbmp');
I = I(:,:,1);
BW=im2bw(I);
figure
imshow(~BW)
[x,y]=getpts
平滑滤波
h=fspecial('average',9);
I_gray=imfilter(I_gray,h,'replicate');%平滑滤波
不知是我想复杂了,还是你说的比较简单
一般f表述函数,你指的f是一个数吧,如果是别的,可以继续探讨
你试试这样行不行:
clear all;clc;
f=input('please input f:');
n=(1/2)f
D=D/max(max(abs(D)));
这句会出错
我帮你改成
maxAll=max(max(abs(D)));
D1=D(:,:,1)/maxAll(:,:,1);
D2=D(:,:,2)/maxAll(:,:,2);
D3=D(:,:,3)/maxAll(:,:,3);
D(:,:,1)=D1;
D(:,:,2)=D2;
D(:,:,3)=D3;
但是这样还是一直处于busy的状态
D是三维的,你的编程目的中D是三维的么?
从后面的程序来看,怎么应该是二维的?
最后一句
ang1=angd+2pi(rand(N,N)-05ones(N,N))finverse(sym('sinc(x)'));
angd是三维的,x也是3维的,而rand(N,N)是二维的,显然会出问题
MATLAB是一款主要用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境的软件。
一、MATLAB软件的简介:
MATLAB由美国mathworks公司所发布,主要应用方面是数值计算、可视化程序设计、交互式程序设计等高科技计算环境。
它集数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等各种十分强大的功于一个易于使用、便于观察的视窗之内,可以为科学研究与工程设计等工作以及其他需要进行有效数值计算的众多科学任务提供了一种具体而又全面的解决方法。
同时,MATLAB还在很大程度上摆脱了传统非交互式程序设计语言的编辑模式,代表了当今国际科学计算软件的先进水平。
二、MATLAB的主要功能有以下几个方面:
1、进行数值分析。
2、可以带入数值和符号并进行相关计算。
3、在工程方面,还可以利用科学的方法绘制复杂精确的图像。
4、运用于控制系统时,可以进行设计与仿真等内容。
5、在面对数字图像时,可以对图像进行处理,编辑图像的内容。
6、可以对数字信号进行处理。
7、在通讯系统中,可以完成设计与仿真等任务。
8、除了工程领域之外,还可以应用于财务与金融工程的分析与仿真等工作。
扩展资料:
MATLAB在使用时,显现出以下强大的优势特点:
1、利用强大的数值计算及符号计算功能,能使用户直观简便地进行繁杂的数学运算分析。
2、MATLAB具有全面、强大的图形处理功能,可以轻易实现计算结果和编程的可视化。
3、MATLAB的用户界面十分简洁,接近数学表达式的自然化语言,使学习者可以很轻松地学习并掌握。
4、MATLAB内部备有功能丰富的应用工具箱,为用户提供了大量方便实用的处理工具。
参考资料来源:百度百科-MATLAB
1理解连续系统时域分析方法
2学习利用matlab对连续系统进行时域分析的方法
3掌握单位冲激响应和单位阶跃响应一般求解方法和基本特征,学习利用matlab求此响应的方法。
4掌握单位冲激响应与系统稳定性、因果性之间的关系。
二、实验器材
计算机、MATLAB软件
三、实验原理
对于单输入-单输出系统的输入激励为 f (t),输出响应为y(t),则描述连续LTI系统的数学模型为n阶次的常系数线性微分方程,形式如下
[上传失败(image-82e2d0-1639285196529)] (3-1)
式子中, a i = 0,1,n,和b i =0,1,m均为常数。
由信号与系统的分析理论值,如果描述系统的微分方程、激励和初始状态已知,我们可用经典时域求解法求出其解。但对于高阶系统,手工计算十分的繁琐,甚至很困难,这时可以用matlab工具求解。
Matlab里提供了求(3-1)解用到的函数,常用的是impluse()、step()、lism()、conv()、dsolve()。下面我们分别介绍这几个函数。
1连续时间系统冲激响应和阶跃响应的求解
连续LTI系统的冲激响应和阶跃响应,分别用impluse和step求解。其调用格式为
impluse (b,a) y=impluse(sys,t)
step (b,a) y=step(sys,t)
式中,t表示计算系统响应的抽样点向量,sys是LTI系统模型,它表示 微分方程,差分方程或状态方程 。其调用格式
sys = tf (b,a)
式中,b和a分别是微分方程的右端和左端系数向量。例如
[上传失败(image-63fd93-1639285196529)]
用a=[a3,a2,a1,a0] ; b=[b3,b2,b1,b0] ,sys = tf (b,a) 获得其LTI模型。
例1:已知描述某连续系统的微分方程为
[上传失败(image-954b31-1639285196529)]
试利用matlab绘出该系统的单位冲激响应和单位阶跃响应的时域波形,并根据单位冲激响应判断系统的稳定性和因果性。`1
matlab程序如下
a=[1 1 6];
b=[1];
subplot(2,1,1)
impulse(b,a)
subplot(2,1,2)
step(b,a)
程序运行后,其图形如下3-1所示。
[上传失败(image-8ac458-1639285196530)]
图3-1 系统的冲激响应和阶跃响应图
从图3-1所示的系统的单位冲激响应的时域波形可以看出,当时间t<0时系统的单位冲激响应h(t)=0,所以该系统为因果系统;同时h(t)随着时间的增长而衰减,当t趋于无穷大时时,h(t)趋于零,所以系统也是一个稳定的系统。
2连续时间系统零输入响应的求解
在MATLAB中,initial是求连续系统的零输入响应函数,其调用形式为
initial(sys,x0)
[y,x,t]=initial(sys,x0)
initial函数可计算出连续时间线性系统由于初始状态所引起的响应(故而称零输入响应)。当不带输出变量引用函数时,initial函数在当前图形窗口中直接绘制出系统的零输入响应。
例2:已知描述某连续系统的微分方程为
[上传失败(image-15bccf-1639285196529)]
y(0)=1,y’(0)=2, 用matlab求其零输入响应
程序如下:
a=[1 1 6];
b=[1];
sys=tf(b,a);
sys1=ss(sys); % 转成状态变量表示
x0=[1,2]
initial(sys1,x0)
运行结果如图3-2所示
[上传失败(image-f08768-1639285196530)]
图3-2 系统的零输入响应图
3连续时间系统零状态响应的数值计算----- lism()
求解微分方程零状态响应的数值解。其调用格式主要有两种。
lism(sys,f,t) y=lism(sys,f,t)
其中,f是输入信号在向量t定义的时间点上的采样值,t是输入信号时间范围向量,sys是LTI系统模型
例3: 已知描述某连续系统的微分方程为
[上传失败(image-4a9e83-1639285196529)]
试利用matlab求出该系统当激励信号为[上传失败(image-5ad649-1639285196529)] 时,系统的响应[上传失败(image-348322-1639285196529)] ,并会出其波形。
matlab程序如下
a=[1 2 1];
b=[1 2];
sys=tf(b,a); %定义系统函数对象
p=001; %定义采样时间间隔
t=0:p:5;
f=exp(-2t);
lsim(sys,f,t); %对系统输出信号进行仿真
程序运行后,其图形如图3-3所示。
[上传失败(image-3950ed-1639285196529)]
图3-3 连续系统的响应仿真
4微分方程的符号解的函数dsolve()
在MATLAB中,dsolve()是求解微分方程的符号解的函数,其调用形式为
r=dsolve(‘eq1,eq2,…’,’cond1,cond2,…’,’v’)
或r=dsolve(‘eq1’,eq2’,…,’cond1’,’cond2’,…,’v’)
其中cond1、cond2…是初始条件(如没有给出初始条件,则默认为求通解),v为自变量变量。D表示一阶微分,D2为二阶微分……。函数dsolve把D后的变量当成因变量,默认为这些变量对自变量的求导。
例4:求二阶系统[上传失败(image-9ca77c-1639285196529)] 在初始条件[上传失败(image-ae497b-1639285196529)] 下的零输入响应的解、零状态响应的解及全解
matlab程序如下
yzi=dsolve('D2y+5 Dy+4 y=0','y(0)=0,Dy(0)=1')
yzs=dsolve('D2y+5 Dy+4 y=exp(-3t)','y(0)=0,Dy(0)=0')
y=dsolve('D2y+5 Dy+4 y=exp(-3t)','y(0)=0,Dy(0)=1')
运行结果如下
yzi =
-1/3 exp(-4 t)+1/3exp(-t)
yzs =
1/3 exp(-4 t)+1/6 exp(-t)-1/2 exp(-3t)
y =
1/2 exp(-t)-1/2 exp(-3t)
即 [上传失败(image-8a13eb-1639285196529)]
[上传失败(image-9036d5-1639285196529)]
[上传失败(image-fa7bd7-1639285196529)]
四、实验内容
1验证实验原理中所述的相关程序
2已知描述某连续系统的微分方程为
[上传失败(image-d41f06-1639285196529)]
(1) 试利用matlab绘出该系统的冲激响应和阶跃响应的时域波形,并根据冲激响应判断系统的稳定性。
a=[1,3,2];
b=[1,2];
subplot(2,1,1)
impulse(b,a);
subplot(2,1,2)
step(b,a);
wending
(2) 当激励信号为[上传失败(image-e16660-1639285196529)] 时,系统的零状态响应[上传失败(image-5beb2d-1639285196529)] ,并绘出响应的波形。
a=[1,3,2];
b=[1,2];
sys=tf(b,a)
t=0:001:5;
f=exp(-2t);
lsim(sys,f,t)
3求三阶系统[上传失败(image-a71fa6-1639285196529)] 在初始条件[上传失败(image-40502a-1639285196529)] 下的零输入响应的解、零状态响应的解及全解。
yzi=dsolve('D2y+5Dy+y=0','y(0)=0,Dy(0)=1')
yzs=dsolve('D2y+5 Dy+y=exp(-3 t)','y(0)=0,Dy(0)=0')
y=dsolve('D2y+5 Dy+y=exp(-3 t)','y(0)=0,Dy(0)=1')
五、实验报告要求
1实验内容中详细说明用连续系统时域分析法的步骤与原理。
2写出其对应的matlab程序。
3上机调试程序的方法及实验中的心得体会。
%层次分析法的matlab程序
1、disp('请输入判断矩阵A(n阶)');
A=input('A=');
[n,n]=size(A);
x=ones(n,100);
y=ones(n,100);
m=zeros(1,100);
m(1)=max(x(:,1));
y(:,1)=x(:,1);
x(:,2)=Ay(:,1);
m(2)=max(x(:,2));
y(:,2)=x(:,2)/m(2);
p=00001;i=2;k=abs(m(2)-m(1));
while k>p
i=i+1;
x(:,i)=Ay(:,i-1);
m(i)=max(x(:,i));
y(:,i)=x(:,i)/m(i);
k=abs(m(i)-m(i-1));
disp('权向量');disp(w);
disp('最大特征值');disp(t);
2、y(:,i)=x(:,i)/m(i);
k=abs(m(i)-m(i-1));
end
a=sum(y(:,i));
w=y(:,i)/a;
t=m(i);
disp('权向量');disp(w);
disp('最大特征值');disp(t);
%以下是一致性检验
扩展资料:
Matlab是一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。
新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。使之更利于非计算机专业的科技人员使用。而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。
参考资料来源:百度百科-MATLAB
以上就是关于matlab程序画图全部的内容,包括:matlab程序画图、求MATLAB代码、如何用matlab编一段小程序 实现公式1/2*f=n 输入一个f 可以得到n等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)