我有一个小函数,它可以找到矩阵中的峰值,然后用0替换它。最终输出与列相关。我很难修复语法,使其以相同的方式工作,但也适用于行。有什么想法吗?这是代码:
HVAzimuthFreqAbs = abs(HVAzimuthFreq);
M = HVAzimuthFreqAbs;
for k1 = 1:size(M,1)
[pks,loc] = findpeaks(M(k1,:),'Threshold',150);
P{k1} = [pks; loc];
end
HVAzimuthFreq(:,loc) = 0;
据我所知,主要的关键是在尺寸所指的顺序之间切换,但我在这方面运气不佳。例如
for k1 = 1:size(1,M)
[pks,loc] = findpeaks(M(:,K1),'Threshold',ThresholdUpper);
P{k1} = [pks; loc];
end
正在给我一个"Dimension参数必须是索引范围内的正整数标量"错误。
有什么想法吗?感谢
您的错误在for
行,size(1,M)
没有意义。使用size(M,2)
获取列数。
您正在将列索引为M(:,K1)
,这是正确的。