将值附加到一个空数组

210(30天)
R
R 2022年5月7日
回答: dpb 2022年5月7日
我无法运行这个简单的代码块。我试图打破6000年块超过一百万点的数据。然后我要计算的峰值,然后返回一个数组,这样我就可以计算出平均每6000数据点峰值。
然而我收到这个错误:
不能执行任务,因为指数在左边
兼容右边的大小。
误差滤波器(第104行)
结束率(+ 1)=山峰;
为什么添加不可能吗?
率= [];
k = 1:尺寸(x): 6000
节= sg_filt (k:我:);
我= k + 6000;
(pks) = findpeaks(部分,“阈值”,500);
峰值大小= (pks);
结束率(+ 1)=山峰;
结束

接受的答案

沃尔特·罗伯森
沃尔特·罗伯森 2022年5月7日
大小()总是返回一个向量。考虑元素个数()

答案(1)

dpb
dpb 2022年5月7日
因为大小()返回一个两个向量和写的 结束率(+ 1) 是一个数组元素的地址,你想两个值存储到一个位置。
我相信w / o测试,由于你传递一个列向量 findpeaks 与其将返回数组作为一个列向量,在这种情况下,你在找什么
结束率(+ 1)=(,1)大小;
如果它是一个列向量,那么 与其大小(2)或只使用元素个数(pks) 而不是尺寸()
最好是preallocate和存储,而不是附加——尽管这是一个足够小的情况下不会出现额外的复制操作,一般可以时尽量避免这样做。
尝试一些更像
N = 6000;%使用变量,不要埋葬魔法数字代码
nSeg =装天花板(元素个数(sg_filt) / N);%计算数量的片段
率= 0 (nSeg, 1);% preallocate输出
k = 1: N:元素个数(sg_filt)
节= sg_filt (k:我,1);
我= k + 6000;
(pks) = findpeaks(部分,“阈值”,500);
峰值大小= (pks);
结束率(+ 1)=山峰;
结束
我安装了一个其他一些基于我猜你想要的东西/也…

下载188bet金宝搏


释放

R2022a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!