首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用前后的值分析期望值:辐射校准-条纹

使用前后的值分析期望值:辐射校准-条纹
EN

Stack Overflow用户
提问于 2012-07-17 22:32:48
回答 1查看 136关注 0票数 0

假设我有一个1x15的数据表

代码语言:javascript
复制
 [21 78 33 59 90 26 88 54 36 63 72 37 48 93 56]

因此,对于我的裸奔方程,我需要实现这个:

条纹百分比= {abs(Q_n - ((Q_n-1 + Q_n+1)/2)) / ((Q_n-1 +Q_n+1)/2))}*100

方程式的解释:

让我们将值90赋给Q_n (这来自单元格(1,5)),使用这个值意味着对于Q_n-1,我们需要值59,对于Q_n+1,我们需要值26 (所以在本质上,(1,4)之前的单元格和(1,6)之后的单元格)

Q_n = 90

Q_n-1 = 59

Q_n+1 = 26

我的问题是:如何对整个数据集执行此操作,并将其应用于条纹方程?(不包括第1行和第15行,因为第1行不能有Q_n-1,第15行也不能有Q_n+1 )

我在想一些事情,大概是这样的:

代码语言:javascript
复制
Q_n = 1;
while Q_n < length(middle.middle_interpolate)
    Q_n = Q_n+1;
    before = middle.middle_interpolate{Q_n-1};
    actual = middle.middle_interpolate{Q_n};
    after = middle.middle_interpolate{Q_n+1};
    averg = ((before + after)/2);
    equation = (abs(actual-averg)/averg)*100;
    plot(equation);
end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-17 23:17:17

我把它分成了几部分,这样你就能看到我在做什么。它也只适用于这个特定的数据集,因为索引是硬编码的(但我打赌您可以弄清楚如何使它适用于您拥有的任何数据集)。

代码语言:javascript
复制
averg = mean([Qn(1:13),Qn(3:15)],2); % this is just getting your averg value.
actual = Qn(2:14);
equation = abs(actual-averg)./averg*100;
plot(equation)

当然,你可以把所有这些放在一行上,让它看起来非常复杂……

代码语言:javascript
复制
equation = abs(mean([Qn(1:13),Qn(3:15)],2) - Qn(2:14))./mean([Qn(1:13),Qn(3:15)],2)*100

但您希望使其具有一定的可读性,以供将来可能查看代码的其他人阅读。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11524809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档