0

我有 4 种不同长度的数据(以行为单位),它们都有不同数量的列。我需要对这些列中的每一列应用一个方程,然后从每一列中提取最大值。

我试图使用的等式是:

averg = mean([interpolate(1:end-2),interpolate(3:end)],2); % this is just getting your average value.
real_num = interpolate(2:end-1);
streaking1 = (abs(real_num-averg)./averg)*100;

我的一个数据集的一个例子是 5448 行 x 13 列

编辑

这是当前对 Ben A. 的解决方案的适应,它正在发挥作用。

A = interpolate;    
averg = (A(1:end-2,:) + A(3:end,:))/2;
center_A = A(2:end-1,:);
streaking = [];
for idx = 1:size(A,2)
    streaking(:,idx) = (abs(center_A(idx,:)-averg(idx,:))./averg(idx,:))*100;
end 
4

1 回答 1

1

我不完全确定我是否完全遵循您在每个步骤中所做的事情,但这里有一个尝试:

A = interpolate;    
averg = (A(1:end-2,:) + A(3:end,:))/2;
center_A = A(2:end-1,:);
streaking = [];
for idx = 1:size(A,2)
    streaking(:,idx) = (abs(center_A(idx,:)-averg(idx,:))./averg(idx,:))*100;
end 

Averg 将是每列的均值向量。我只是将给定列中的值用作您之前拥有的 real_num 变量。我不清楚为什么你需要索引你现在的样子,因为没有违反索引规则的风险。

如果这有帮助,那就太好了!如果不让我知道,我会看看我是否可以修改一些。

于 2012-08-03T17:10:17.337 回答