當前位置:首頁 > 文章中心>Matlab代寫代做常見函數調用實例

Matlab代寫代做常見函數調用實例

發布時間:2020-04-13 15:20:27 閱讀:1613 作者:致遠教育 字數:1310 字 預計閱讀時間:4分鐘
導讀:對于已經接觸過matlab編程軟件的留學生們來說,它能夠幫助我們實現在算法開發、數據分析以及交互環境等多方面的效果,在matlab當中我們能夠將不同的語句調用到一起來執行,這也是我們所說的函數,那么在實際的操作當中,我們面對著較多不同的變量需要采用的不同的算法,我們要如何去...

對于已經接觸過matlab編程軟件的留學生們來說,它能夠幫助我們實現在算法開發、數據分析以及交互環境等多方面的效果,在matlab當中我們能夠將不同的語句調用到一起來執行,這也是我們所說的函數,那么在實際的操作當中,我們面對著較多不同的變量需要采用的不同的算法,我們要如何去自定義函數調用呢?本文致遠及哦啊與教育就根據網絡資料為各位帶了一些比較常見的8個函數調用實例解析,不會的同學們趕緊學起來哦。

Matlab代寫常見8個函數調用實例

1.三角波產生器

t=-3:0.01:3;

f1=tripuls(t);

subplot(3,1,1);

plot(t,f1);

axis([-3,3,-0.2,1.2])

set(gcf,'color','w');

f2=tripuls(t,4);

subplot(3,1,2);

plot(t,f2);

axis([-3,3,-0.2,1.2])

%set(gcf,'color','w');

f3=tripuls(t,4,-1);

subplot(3,1,3);

plot(t,f3);

axis([-3,3,-0.2,1.2])

2.離散序列的相加與相乘

function[x,n]=jxl(x1,x2,n1,n2)

n=min(min(n1),min(n2)):max(max(n1),max(n2));

s1=zeros(1,length(n));s2=s1;

s1(find((n>=min(n1))&(n<=max(n1))==1))=x1;

s2(find((n>=min(n2))&(n<=max(n2))==1))=x2;

x=s1+s2;//x=s1.*s2:%序列乘

axis([(min(min(n1),min(n2))-1),(max(max(n1),max(n2))+1),(min(x)-0.5),(max(x)+0.5)])

 3.序列的反摺

function[x,n]=xlfz(x1,n1)

x=fliplr(x1);n=fliplr(n1);

stem(n,x,'filled')

axis([min(n)-1,max(n)+1,min(x)-0.5,max(x)+0.5])

4.序列的卷積

function[x,n]=gghconv(x1,x2,n1,n2)

x=conv(x1,x2)

ns=n1(1)+n2(1);

leg=length(x1)+length(x2)-2;

n=ns:(ns+leg)

subplot(2,2,1)

stem(n1,x1,'filled')

title('x1(n)')

xlabel('n')

subplot(2,2,2)

stem(n2,x2,'filled')

title('x2(n)')

xlabel('n')

subplot(2,2,3)

stem(n,x,'filled')

title('x(n)=n1(n)+x2(n)')

xlabel('n')

p=get(gca,'position');

p(3)=2.4*p(3);

set(gca,'position',p)

5.l連續函數的卷積

function[f,t]=gggfconv(f1,f2,t1,t2)

d=input('??ê?è?2é?ù????d:');

f=conv(f1,f2)

f=f*d;

ts=t1(1)+t2(1);

l=length(f1)+length(f2)-2;

t=ts:d:(ts+l*d);

subplot(2,2,1)

plot(t1,f1)

axis([min(t1),max(t1),min(f1)-min(f1)*0.2,max(f1)+max(f1)*0.2])

title('f1(t)')

xlabel('t')

subplot(2,2,2)

plot(t2,f2)

axis([min(t2),max(t2),min(f2)-min(f2)*0.2,max(f2)+max(f2)*0.2])

title('f2(t)')

xlabel('t')

subplot(2,2,3)

plot(t,f)

axis([min(t),max(t),min(f)-min(f)*0.2,max(f)+max(f)*0.2])

p=get(gca,'position');

p(3)=2.4*p(3);

set(gca,'position',p)

title('f(t)=f1(t)*f2(t)')

xlabel('t')

matlab代寫常見的函數調用實例:6.周期信號傅里葉級數

display('傅里葉展開的項數')

m=input('m=');

t=-2*pi:0.01:2*pi;

n=round(length(t)/4);

f=[ones(n,1);-1*ones(n,1);ones(n,1);-1*ones(n+1,1)];

ones(314,1);

y=zeros(m+1,max(size(t)));

figure(1);

y(m+1,:)=f';

figure(1);

plot(t/pi,y(m+1,:));

grid;

axis([-2 2 -1.5 1.5]);

title('周期方波');

xlabel(size(t));

xlabel('單位:pi','Fontsize',8);

x=zeros(size(t));

kk='1'

for k =1:2:2*m-1

pause;

x=x+sin(k*t)/k;

y((k+1)/2,:)=4/pi*x;

plot(t/pi,y(m+1,:));

hold on;

plot(t/pi,y((k+1)/2,:));

hold off;

grid;

axis([-2 2 -1.5 1.5]);

title(strcat('',kk,'次諧波疊加'));

xlabel('單位:pi','Fontsize',8);

kk=strcat(kk,',',num2str(k+2));

end

pause;

plot(t/pi,y(1:m+1,:));

grid;

axis([-2 2 -1.5 1.5]);

title('各次諧波疊加');

xlabel('單位:pi','Fontsize',8);

7.cos(2/3pi*t)的采樣

display('奈奎斯特周期1.5s,Ts<1.5,過采樣,Ts>1.5,欠采樣');

display('Please input the value of sample period');

Ts=input('Ts=');

t=0:0.01:40;

y=cos(2/3*pi*t);

subplot(221);

plot(t,y);

axis([0 6 -1.1 1.1]);

xlabel('t  單位:s','Fontsize',8');

title('f(t)');

line([0 6],[0 0],'color',[0 0 0]);

N=300;

k=-N:N;

W=2*pi*5;

w=k*W/N;

Y=0.01*y*exp(-j*t'*w);

Y=abs(Y);

subplot(222);

plot(w/pi,Y);

axis([-2,2,0,pi*7+0.2])

xlabel(' \omega 單位:s');

title('F(j\omega)');

subplot(223);

plot(t,y,'b:');

hold on

t2=0:Ts:40;

y2=cos(2/3*pi*t2)

stem(t2,y2);

axis([0 6 -1.1 1.1]);

xlabel('t  單位:s','Fontsize',8');

title('fs(s)');

hold off

Y2=Ts*y2*exp(-j*t2'*w);

Y2=abs(Y2);

subplot(224);

plot(w/pi,Y,'b')

xlabel(' \omega 單位:s');

title('Fs(omega)');

hold on

plot(w/pi,Y2,'r');

axis([-2,2,0,pi*10]);

hold off

8.Sa的采樣與重構

%奈奎斯特k=1,01,欠采樣

display('Please input the value of k');

k=input('k=');

wm=1;         %信號帶寬

Ts=k*pi/wm; %采樣間隔

ws=2*pi/Ts; %采樣角頻率

wc=ws/2;  %    濾波器截止頻率

n=-10:10;    %采樣點的數量

m=fix(length(n)/2);       %單邊采樣周期  fix為取整

nTs=n*Ts;           %計算每個采樣點

dt=0.05;

t=-m*Ts:dt:m*Ts;

f=sinc(nTs/pi);

fa=f*Ts*wc/pi*sinc((wc/pi)*(ones(length(nTs),1)*t-nTs'*ones(1,length(t))));

f2=sinc(t/pi);

subplot(311);

stem(nTs,f);     %繪制采樣信號

hold on

plot(t,f2,'r:');         %繪制包絡

xlabel('t ');

title('Sa(t)信號進行采樣');

axis([-m*Ts m*Ts -0.5 1.2]);

hold off

subplot(312);

h1=plot(t,fa);    %繪制重構信號

hold on

for i = -m*Ts:dt:m*Ts

ft=sinc(i/pi)*sinc(wc/pi*(t-i));       %繪制重構信號的各個風量

h2=plot(t,ft,'m:');

hold on

yy=sinc(i/pi);

yy1=yy*yy;

plot(i,yy1,'o');

endxlabel('t ');

title('重構信號');

axis([-m*Ts m*Ts -0.5 1.2]);

legend([h1,h2],'重構信號','分信號')

hold off

subplot(313);

error=abs(fa-f2);

plot(t,error);

axis([-m*Ts m*Ts min(error) max(error)+0.1*max(error)]);

xlabel('t');

ylabel(' error(t)');

我們需要根據實際的情況來選擇使用不同的函數調用,讓matlab能夠更好的實現我們所需要的效果,在matlab當中函數的執行是能夠同時間處理和返回多個輸出參數,這一點各位留學生們需要好好去理解。需要matlab代寫的同學們趕緊聯系我們網站在線客服吧~

我要評論

評論內容:

驗證碼:
驗證碼

911国产在线观看无码专区