你好,楼主,这个问题到是解决了,可是接连出现了有一个问题,??? Attempted to access ar(53); index out of bounds because numel(ar)=52.
Error in ==> chadian1 at 14
d{i}=ones(1,(ar(i)-al(i)-1))*b(i);%ones函数参数要为整数,unint16就是数据强制类型转换,
一下是这个函数
function f_value=chadian1(a,b,c)
% chadian1 把端点及极值点处对应的总坐标值插入,原来的均值函数的方波序列中
%输入参数a:点序列(行向量)(包含端点和极值点以 在时间上的位置-横坐标)(n个)(点序列-横坐标)
%输入参数b:段序列(行向量)(点序列a 每两点之间的纵坐标的值-纵坐标) (n-1)-(段序列-纵坐标)
%输入参数c:点序列(行向量) (包含端点和极值点 在对应时间上的幅值-纵坐标)(n个)-(点序列-纵坐标)
%输入参数d:原始数据的采样精度
%输出参数f_value(行向量): 点序列a 插入 段序列的值 之后,以c的精度的 值(对应于 横坐标,纵坐标的值)
%精度是0.001
l=length(b);
al=wkeep(a,l,'l');
ar=wkeep(a,l,'r');
d={[]};%d={0}这样是为了初始化 元胞数组
for i=1:l %采样精度0.001
d{i}=ones(1,(ar(i)-al(i)-1))*b(i);%ones函数参数要为整数,unint16就是数据强制类型转换,
end %这里没有使用到单独为uint16((ar(i)-al(i))*1000)-1)这个自变量赋值,所以只是个中间变量,对数据不会产生污染
y=c(1);
for i=1:l
y=link(y,c(i+1),d{i});
end
f_value=y;
end
|