职位关键字 工作地点
工作名称 公司名称 校园招聘
中国最好的工作搜索引擎!
  回复留言  
  MATLAB程序
作者: yase1984  01-01 08:00   回复  
 S = input(‘ n- ‘); %输入数字个数

l = input(‘n0-‘);

Out = zeros(1600*s+1,1);

Tab = [941 1336;697 1209;697 1336;697 1477;770 1209;770 1336;770 1477;852 1209;852 1336;852 1477]; %建立表矩阵

for I = 1:s

k = input(‘0-9-‘); %输入具体的数字

f1 = tab(k+1,1)/8000; %对信号取样

f2 = tab(k+1,2)/8000;

for j = 1:800

z = sin(f1*j*2*pi)+sin(f2*j*2*pi); %两信号叠加

out(1600*(i-1)+j+1,1) = z;

out(1600*(i-1)+j+800+1,1) = 0;

end

end

out = out./2;

subplot(211);plot(out);

n = 256;

r = zeros(8*s,n/4);

a = out;

subplot(212);plot(a);

for I = 1:8*s

x = a((i-1)*200+1:i*200);

y = fft(x,n); %作FFT分析

p = abs(y); %计算幅频谱

r(I,:) = p(1:n/4);

end

for I = 1:8*s %以下是根据FFT分析结果,对信号解码

c = r(I,:);

z = find(c<40);

c(z )= zeros(size(z));

b = nnz(c);

if (b= =2)

q = find(c);

if (q(1) = = 23)

if (q(2) = = 40)

res(i) = 1;

elseif(q(2) = = 44)

res(i) = 2;

elseif(q(2 )= = 48)

res(i) = 3;

end

elseif(q(1) = = 26)

if(q(2) = = 40)

res(i) = 4;

elseif(q(2) = = 44)

res(i) = 5;

elseif(q(2) = = 48)

res(i) = 6;

end

elseif(q(1) = = 28)

if(q(2) = = 40)

res(i) = 7;

elseif(q(2) = = 44)

res(i) = 8;

elseif(q(2) = = 48)

res(i) = 9;

end

elseif(q(1) = = 31)

if(q(2) = = 44)

res(i) = 0;

end

end

else

res(i) = NaN;

end

end

res = res



这个程序老是运行不出来,希望高手帮我看看

  回复:MATLAB程序
作者: 化学工程  01-01 08:00   回复  
 程序通了。不知道大写I和小写i是不是一个概念,都改成小写i了。Out改成out,S改成s等。



%S = input( 'n-'); %输入数字个数

%l = input('n0-');

clc;clear;

s=3,l=2

out = zeros(1600*s+1,1);

tab = [941 1336;697 1209;697 1336;697 1477;770 1209;770 1336;770 1477;852 1209;852 1336;852 1477]; %建立表矩阵

for i = 1:s

%k = input('0-9-'); %输入具体的数字

k=5

f1 = tab(k+1,1)/8000; %对信号取样

f2 = tab(k+1,2)/8000;

for j = 1:800

z = sin(f1*j*2*pi)+sin(f2*j*2*pi); %两信号叠加

out(1600*(i-1)+j+1,1) = z;

out(1600*(i-1)+j+800+1,1) = 0;

end

end

out = out./2;

subplot(2,1,1);plot(out);

n = 256;

r = zeros(8*s,n/4);

a = out;

subplot(2,1,2);plot(a);

for i = 1:8*s

x = a((i-1)*200+1:i*200);

y = fft(x,n); %作FFT分析

p = abs(y); %计算幅频谱

r(i,:) = p(1:n/4);

end

for i = 1:8*s %以下是根据FFT分析结果,对信号解码

c = r(i,:);

z = find(c<40);

c(z )= zeros(size(z));

b = nnz(c);

if (b==2)

q = find(c);

if (q(1) == 23)

if (q(2) == 40)

res(i) = 1;

elseif(q(2) == 44)

res(i) = 2;

elseif(q(2 )== 48)

res(i) = 3;

end

elseif(q(1) == 26)

if(q(2) == 40)

res(i) = 4;

elseif(q(2) == 44)

res(i) = 5;

elseif(q(2) == 48)

res(i) = 6;

end

elseif(q(1) == 28)

if(q(2) == 40)

res(i) = 7;

elseif(q(2) == 44)

res(i) = 8;

elseif(q(2) == 48)

res(i) = 9;

end

elseif(q(1) == 31)

if(q(2) == 44)

res(i) = 0;

end

end

else

res(i) = NaN;

end

end

res = res

  回复:MATLAB程序
作者: ryolzlzlz  06-04 15:13   回复  
  请看看你的电脑的配置环境和程序是否存在着逻辑错误,

实在检查不出来就看看运行时是否有程序报错现象!

程序本生的语法错误也可能导致程序运行不出来!

你这样应该是属于运行时错误的!

拿相关的软件编写方法看看吧!

标 题:
内 容:
用户名:
 游客
 
 
Copyright©2005-2007, 版权所有 WWW.JOBMET.COM
ICP证:京ICP备06019556号