matlab sim函数究竟是怎么用的?

2024-04-29

1. matlab sim函数究竟是怎么用的?

sim函数用来运行Simulink模型。需要注意的是,用户无法控制其仿真过程(例如暂停、继续),一旦运行就会直到达到结束条件为止——这一点和通过模型窗口界面运行仿真不同。
 
调用格式:
[t,x,y] = sim(model,timespan,options,ut);[t,x,y1, y2, ..., yn] = sim(model,timespan,options,ut);
 
输入参数:
model:模型的名字,用单引号括起来(注意不带扩展名.mdl);
timespan:指定仿真时间范围,可以有几种情况:
标量tFinal,指定仿真结束时间。这种情况下开始时间为0;
两个元素的向量[tStart tFinal],同时指定开始时间和结束时间;
向量[tStart OutputTimes tFinal],除起止时间外,还指定输出时间点(通常输出时间t会包含更多点,这里指定的点相当于附加的点)。
options:指定仿真选项,是一个结构体,该结构体通过simset创建,包括模型求解器、误差控制等都可以通过这个参数指定(不修改模型,但使用和模型对话框里设置的不同选择)。
ut:指定外部输入,对应于根模型的Inport模块。
除第一个输入参数外,其他参数都可以用空矩阵([])来表示模型的默认值。
 
输出参数:
t:仿真时间向量;
x:状态矩阵,每行对应一个时刻的状态,连续状态在前,离散状态在后;
y:输出矩阵,每行对应一个时刻;每列对应根模型的一个Outport 模块(如果Outport模块的输入是向量,则在y中会占用相应的列数)。
y1, y2, ..., yn:把上面的y分开,每个yi对应一个Outport模块。
 
打字很辛苦,感觉有用就采纳了吧。有问题可以继续追问。

matlab sim函数究竟是怎么用的?

2. 如何利用MATLAB实现,求大神指导


 
主函数:
clear all;close all;clc;
a=imread('tttt.jpg');imshow(a)number=400;p='c';r=10;
if p=='line'num=number*2;xx=floor(rand(1,num)*size(a,1))+1;yy=floor(rand(1,num)*size(a,2))+1;pt=[xx;yy];pt(find(pt(:)==256))=255;ap=a;ap(:)=0;for i=1:size(pt,2)/2   ppt=pt(:, i*2-1:i*2)    t=linen(ppt);    for j=1:size(t,2)        wei=uint8(t(:,j));        ap(wei(1),wei(2))= a(wei(1),wei(2));    end            endelse     xx=floor(rand(1,number)*size(a,1))+1;yy=floor(rand(1,number)*size(a,2))+1;pt=[xx;yy];pt(find(pt(:)==256))=255;r=floor(rand(1,number)*r)+1;yuan=[pt;r];
ap = n_line( yuan,a );end
figure;imshow(ap)
子函数1:
function [ t ] = linen( ppt )%UNTITLED2 Summary of this function goes here%   Detailed explanation goes herep1=ppt(:,1);p2=ppt(:,2);
if(p1(1)-p2(1))==0       tp=min ([p1(2) p2(2)]):1:max ([p1(2) p2(2)]);   t=zeros(2,length(tp));   t(1,:)=p1(1);   t(2,:)=tp;elseif   (p1(2)-p2(2))==0   tp=min ([p1(1) p2(1)]):1:max ([p1(1) p2(1)]);   t=zeros(2,length(tp));   t(2,:)=p1(2);   t(1,:)=tp;    else    k = (p1(2)-p2(2))/(p1(1)-p2(1));    b = p1(2) - k*p1(1);    for i=min ([p1(1) p2(1)]):1:max ([p1(1) p2(1)]);     t(2,i-min ([p1(1) p2(1)])+1)=k*i+b;     t(1,i-min ([p1(1) p2(1)])+1)=i;    endend                
end
子函数2 :
function [ t ] = n_line( yuan,a )%UNTITLED3 Summary of this function goes here%   Detailed explanation goes here
t=a;t(:)=0;[m,n ]=size(a);for i=1:m    for j=1:n        for p=1:size(yuan,2)           cent=yuan(1:2,p);           rid=yuan(3,p);                    dis=sqrt((i-cent(1))^2+(j-cent(2))^2);         if dis<rid             t(i,j)=a(i,j);         end                                end                            endend       
end
 
 
比较乱, 你自己看下的吧 应该修改下会精炼很多  思想大概是这样的  输入图片的画 只能为单通道  3通道的话 还得稍微改下
p为类型选择 p='line'则用线条覆盖, 其他情况则选择圆形
number为mask个数, 即多少个圆 或者多少条直线
r为圆模式下的 半径范围  当r=30 则对应生成的随即半径范围为1——30

3. matlab sim函数究竟是怎么用的?

sim函数用来运行Simulink模型。需要注意的是,用户无法控制其仿真过程(例如暂停、继续),一旦运行就会直到达到结束条件为止——这一点和通过模型窗口界面运行仿真不同。
调用格式:
[t,x,y]
=
sim(model,timespan,options,ut);
[t,x,y1,
y2,
...,
yn]
=
sim(model,timespan,options,ut);
输入参数:
model:模型的名字,用单引号括起来(注意不带扩展名.mdl);
timespan:指定仿真时间范围,可以有几种情况:
标量tFinal,指定仿真结束时间。这种情况下开始时间为0;
两个元素的向量[tStart
tFinal],同时指定开始时间和结束时间;
向量[tStart
OutputTimes
tFinal],除起止时间外,还指定输出时间点(通常输出时间t会包含更多点,这里指定的点相当于附加的点)。
options:指定仿真选项,是一个结构体,该结构体通过simset创建,包括模型求解器、误差控制等都可以通过这个参数指定(不修改模型,但使用和模型对话框里设置的不同选择)。
ut:指定外部输入,对应于根模型的Inport模块。
除第一个输入参数外,其他参数都可以用空矩阵([])来表示模型的默认值。
输出参数:
t:仿真时间向量;
x:状态矩阵,每行对应一个时刻的状态,连续状态在前,离散状态在后;
y:输出矩阵,每行对应一个时刻;每列对应根模型的一个Outport
模块(如果Outport模块的输入是向量,则在y中会占用相应的列数)。
y1,
y2,
...,
yn:把上面的y分开,每个yi对应一个Outport模块。
打字很辛苦,感觉有用就采纳了吧。有问题可以继续追问。

matlab sim函数究竟是怎么用的?

4. 这个函数在matlab中怎么写?

首先新建个Script,书写页面如图1所示,Matlab代码如下:

function [y]=funx(x,N,M) 
mind=0;
for n=-N:M;
    mind=mind+2*fe(x+2*n+1);%求和
end
y=x-mind+2*(M+1);
end

function y1=fe(x) %单位阶跃函数
if x>=0
y1=1;
else
y1=0;
end
end
                   
                                                      图1  代码书写页面
以函数名“funx.m”命名 保存。
然后,直接调用funx(x,N,M)即可,这里直接在命令窗口调用,如图2所示。   

                    
                                                       图2 命令窗口调用函数funx

注意:由于问题中没有给出单位阶跃函数图形,函数中就当通常情况处理了。

希望对你有所帮助。。。

5. 【matlab】编写函数题

%%%%%%%%%%%%%%%%%%
function y = ftest( x )
if( x <= 2 )
    y = 0.5*x ;
elseif( x<= 6 )
    y = 1.5-0.25*x;
else
    y = 0.5;
end

%%%%%%%%%%%%%%%%%%
clc;
clear;
close all;

x=0:0.1:2;
y1=ftest(x);
y2=ftest(x+2);

plot(x,y1.*y2)


【matlab】编写函数题

6. Matlab 中怎样用函数?

f=@(x)  x^3+2*x+1
f(1)
f(2)
f(3)
最新文章
热门文章
推荐阅读