1樓:流星
function [sys,x0,str,ts]=mdlinitializesizes
sizes = simsizes;
sizes.numcontstates = 0;
sizes.numdiscstates = 4;
sizes.numoutputs = 1;
sizes.numinputs = 2;
sizes.dirfeedthrough = 0;
sizes.numsampletimes = 0;
sys = simsizes(sizes);
x0 = [0 6 1 0];%x(1)時間0開始;x(2)幅值;x(3)切換標誌位;x(4)週期標誌位;
str = ;
ts = ;
function sys=mdlupdate(t,x,u)t=0.000125;%週期設定
k=x(4);
s=x(2);
i=x(3);
if mod(i,2)==1
p1=1.56*10^(-6);
p2=-1.295*10^(-6);
p3=-7.847*10^(-6);
p4=61.5*10^(-6);
m=u(1);
n=u(2);
a=p1*311*sin(100*pi*(k+1))+p2*m+p3*n+p4;
t3=t*k+a;
endif mod(i,2)==0
t3=t*k;
endt1=x(1);
t2=t;
if (t1<=t3) & (t2>t3)%尋找切換時間點s=-s;
i=i+1;
if mod(i,2)==0
k=k+1;
endend
sys=[t2 s i k];
function sys=mdloutputs(t,x,u)sys=[x(2)];
因為時間關係,沒有仔細斟酌,程式不是很簡潔,但是可以用。
2樓:卿空班宛亦
數string面吧
首先確認輸入string
用modifiedstr
=strrep(origstr,
oldsubstr,
newsubstr)b=
strrep(a,
'01',
'1')
b01都換1
0本0用變
清楚要單獨現1換0
011要換00
用num2strstr2num類轉換string或者數字格式我前面說明白
輸入例輸入a
c=num2str(a)b=
strrep(c,
'01',
'0')a=
str2num(b)
matlab中random函式的問題
產生乙個3行3列的隨機數矩陣。隨機數服從0 10之間的均勻分布 即x u 0,10 matlab中rand 函式的問題。if number 0 number 1 6 k 1 這個地方是大寫k,不改變k的值哦 matlab產生隨機數問題 第乙個問題,執行 下面的 就都有了。x 10 rand 1,10...
MATLAB中datenum函式的問題
命令格式 datestr d,form 顯示序列數d表示的 form表示形式的日期。form引數從0 18,共19個整數,各代表0 dd mmm yyyy,1 dd mmm yyyy,2 mm dd yy 3 mmm 月的前三個字母 4 m 月的首寫字母 5 m 月的阿拉伯數字 6 mm dd,7 ...
matlab中if和switch函式問題
輸出不正常的原因 matlab 中case 不同於if else,case 後面跟的應該是變數確切的值,而不是邏輯判斷。詳細可以在command window中輸入doc case檢視。舉例 function z untitled x a 1 b 2 c 3 d 4 z 0 switch x cas...