在MATLAB运行时出现??? Undefined function or variable "tau".

[复制链接]
查看11 | 回复0 | 2010-9-13 13:17:10 | 显示全部楼层 |阅读模式
我的程序就是要求出tau和m,得到data数据后我在主窗口键入[tau,m]=CC_Method(data),运行这个程序可是却出现:
??? Undefined function or variable "tau".
Error in ==> CC_Method at 58
m=round(Tscor/tau)+1;
请各位大大帮忙解决~~下附程序:
function [tau,m]=CC_Method(data)
x=data;
x=x';

X = [x-mean(x)]/[max(x)-min(x)];
% 归一化到均值为 0,振幅为 1
maxLags = 100;
% 最大时延
m_vector = 2:5;
% m 取值范围
sigma = std(X);
r_vector = sigma/2*[1:4];
% r 取值范围
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %初始化
S_mean = zeros(1,maxLags);
Sj = zeros(1,length(r_vector));
delta_S_mean = zeros(1,maxLags);
delta_S = zeros(length(m_vector),maxLags);
for t = 1:maxLags

temp = 0;

for i = 1:length(m_vector)

for j = 1:length(r_vector)

m = m_vector(i);

r = r_vector(j);

S = ccFunction0(m,X,r,t);
% 文献中公式(13)

temp = temp + S;
% 文献中公式(17)

Sj(j) = S;

end

delta_S(i,t) = max(Sj)-min(Sj);
% delta_S(m,t),文献中公式(15)

end

S_mean(t) = temp/(length(m_vector)*length(r_vector)); % 文献中公式(17)

delta_S_mean = mean(delta_S);
% 文献中公式(18)
end
S_cor = delta_S_mean + abs(S_mean);
% 文献中公式(19)
for t=1:maxLags

if S_mean(t)==0

St=t;

break

end
end
for t=1:maxLags-1

if delta_S_mean(t) CC_Method at 58 你的程序运行到最后一行报错,原因 是 变量"tau"没有定义。大概看了下你的程序,在这里用到"tau",
if delta_S_mean(t)<delta_S_mean(t+1)
tau=t;
break
end如果到最后提示"tau"没有定义,应该是这个条件(delta_S_mean(t)<delta_S_mean(t+1)) 没有得到满足,所以tau=t这一句没有得到执行。要消除这个错误,你可以在这里设个断点看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行