
Fs=20e3;
f1=1e3;
f2=8e3;
N=2000;
dt=1/Fs;
df=Fs/N;
t=(0:N-1)dt;
y=sin(2pif1t)+2sin(2pif2t);
%滤波前时域及频谱
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
在M-file edit中:
function subfun(a,b)
x=a:001:b; %a,b为你所要的自变量取值范围
y=(x^3+5x-10)/6(x+5<0)+exp(x-1)(-5<=x<5)+log(7x+4)(x>=5);
plot(x,y)
保存后,在command window下输入
subfun(-10,10)就可以了……
分段函数都可以引入一个向量,自变量在某个范围内为1,否则为0,上述代码中的(x+5<0),(-5<=x<5),和(x>=5)就是了……
还要注意的是用"",而不是""
参考代码:
>> s=0; for i=1:10, s=s+i^i; end, ss =
10405e+010
我是在命令窗口里面直接写的,如果要保存成脚本文件,只要第一行即可(注意去掉命令提示符)。
1、首先,建立一个自定义函数文件,如funm文件。文件内容为
function c=fun(a,b);
c=a+b;
2、然后,在当前文件目录下,执行窗口命令
a=2;b=5;
c=fun(a,b)
3、运行结果
%%
clc;
clear;
m = linspace(1,100,100)
flag = 0;
res = 0;
for i = 3:length(m)
for j = 2:i-1
if mod(m(i),j) == 0
flag = 1;
break;
else
flag = 0;
end
end
if flag == 0
r = [res,m(i)];
res = r;
end
end
r(2:length(r))
matlab 程序的文件代码是以m文件的形式呈现的。将matlab代码编写进m文件内然后运行即可。
例子:
建立一个 helloworldm
文件内包括内容如下:
fprintf('Hello World!');
使用快捷键F5直接运行,然后可以在控制台下看到打印的:
Hello World!
以上就是关于用matlab编一个程序全部的内容,包括:用matlab编一个程序、用matlab编写一个程序、怎样用matlab设计程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)