急需一个用Matlab语言编写的程序例子

急需一个用Matlab语言编写的程序例子,第1张

我最近也学了一点,主要是用于BP网络上面的编程,这里有个例子你先看看!

X

=

[0

1

0

1]

clusters

=

5

points

=

10

std_dev

=

0.05

P

=

nngenc(X,clusters,points,std_dev)

plot(P(1,:),P(2,:),'+r')

title('输入样本向量')

xlabel('p(1)')

ylabel('p(2)')

%建立网络

net=newc([0

10

1],5,0.1)

%得到网络权值,并在图上绘出

figure

plot(P(1,:),P(2,:),'+r')

w=net.iw{1}

hold

on

plot(w(:,1),w(:,2),'ob')

hold

off

title('输入样本向量及初始权值')

xlabel('p(1)')

ylabel('p(2)')

figure

plot(P(1,:),P(2,:),'+r')

hold

on

%训练网络

net.trainParam.epochs=7

net=init(net)

net=train(net,P)

%得到训练后的网络权值,并在图上绘出

w=net.iw{1}

plot(w(:,1),w(:,2),'ob')

hold

off

title('输入样本向量及更新后的权值')

xlabel('p(1)')

ylabel('p(2)')

a=0

p

=

[0.6

0.8]

a=sim(net,p)

基本解答如下:

(1-1):

function [b,y] = by(m,n)

b=lcm(m,n)%最小公倍数

y=gcd(m,n)%最大公约数

end

(1-2):

function t=sushu(n)

m=floor(sqrt(n))

for i=2:m

if mod(n,i)==0

t=0

break

else

t=1

end

end

end

(2):可以一次算出每一项,发现他们都是同一个值,这个值的求法:SUM=sum(1:n^2)/n%n阶魔幻阵特有的和

function [A,H,L,DJ,SUM]=mag(n)

A=magic(n)%产生一个n阶魔幻阵

H=sum(A)%每行的和

L=sum(A)%每列的和

DJ=sum(diag(A))%对角线和

SUM=sum(1:n^2)/n%n阶魔幻阵特有的和

end

(3):这题我给出“该数各位数字之和为奇数”的求法,结合上面有判断素数的代码自己可以求出

该数各位数字之和为奇数:

function funct

for i=2:999

%l=floor(log10(i))+1 %提取位数

n1=floor(i/100) %取出百位数字n1

n2=mod(floor(i/10),10)%取出十位数字n2

n3=mod(i,10) %取出个位数字n3

nsum=n1+n2+n3

if rem(nsum,2)~=0%判断是否为奇数

disp (i)

end

end

end

自己可以调试看看,祝你成功!

Fs=20e3

f1=1e3

f2=8e3

N=2000

dt=1/Fs

df=Fs/N

t=(0:N-1)*dt

y=sin(2*pi*f1*t)+2*sin(2*pi*f2*t)

%滤波前时域及频谱

figure(1)

subplot(2,1,1)

len=120

plot(t(1:len),y(1:len))

title('低通滤波前信号')

xlabel('时间(s)')

ylabel('幅值')

grid on

subplot(2,1,2)

Y=abs(fft(y))

f=(0:N/2)*df

Y(1)=Y(1)/N

Y(2:N/2)=Y(2:N/2)/(N/2)

Y(N/2+1)=Y(N/2+1)/N

plot(f,Y(1:N/2+1))

xlabel('频率(Hz)')

ylabel('幅值')

grid on

%滤波器

figure(2)

Wp=2e3

Ws=3e3

Rp=2

Rs=20

[n,Wn]=buttord(Wp/(Fs/2),Ws/(Fs/2),Rp,Rs)

[b,a]=butter(n,Wn)

[H,ff]=freqz(b,a,N,Fs)

plot(ff,abs(H))

title('低通滤波特性曲线')

xlabel('频率(Hz)')

ylabel('归一化幅度')

grid on

%滤波后时域及频谱

figure(3)

subplot(2,1,1)

y2=filter(b,a,y)

plot(t(1:len),y2(1:len))

title('低通滤波后信号')

xlabel('时间(s)')

ylabel('幅值')

grid on

subplot(2,1,2)

Y=abs(fft(y2))

Y(1)=Y(1)/N

Y(2:N/2)=Y(2:N/2)/(N/2)

Y(N/2+1)=Y(N/2+1)/N

plot(f,Y(1:N/2+1))

xlabel('频率(Hz)')

ylabel('幅值')

grid on


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8167385.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存