在编辑时,“epoch”被确定为变量而且这个 变量未初始化。 “epoch”也是一个功能名称和以前的版本 MATLAB会调用该函数。 但是,MATLAB 7禁止在同一名称中使用相同的名称 上下文既是函数又是变量。
function slope1_4=s(x,m)
A=xlsread(x);
slope1_4=[];
%B=xlsread(y);
%nbligneA=size(A,1);
%nbcolonneA=size(A,2);
%nbligneB=size(B,1);
%nbcolonneB=size(B,2);
for j=m %nbcolonneA
clear ini;
clear fin;
ini=epoch(:,A(1,j),1);
fin=epoch(:,A(1,j),2);
ini(ini==0)=[];
fin(fin==0)=[];
for i=1:size(ini,1)
clear f;
clear a;
clear b;
clear y;
debut=ini(i);
ending=fin(i);
interval=ending-debut+1;
a=A(debut+1:ending+1,j);
for y=1:interval
f(y)=a(y);
end
y=1:interval;
b=polyfit(y,f,1);
slope1_4=[slope1_4,b(1)];
end
end
问题可能来自epoch(:,A(1,j),1)中的“:”但我不知道如何解决这个问题..
答案 0 :(得分:2)
您不能将:
作为参数传递给函数。 colon仅作为变量的索引有效,因此MATLAB假定epoch
应该是变量。但是,您无法从尚未初始化的变量中提取数据,因此会出现错误。
您的函数epoch
期望索引(或索引范围)作为第一个参数。因此,您必须为其提供标量索引或您希望它返回的数据索引向量。如果您希望它返回所有数据(即所有可能的索引),但您在调用epoch
时不知道数据有多大,然后你可以传递冒号字符串作为参数,如下所示:
ini=epoch(':',A(1,j),1);
fin=epoch(':',A(1,j),2);