【发布时间】:2020-01-08 00:47:42
【问题描述】:
我有一个大约 30,000 点的散点图,所有这些都位于我在绘图中直观定义的水平线上方。我现在的目标是将所有这些点到这条水平线的垂直距离相加。
数据是从.csv文件中读入的,已经保存到工作区,但我还需要检查一个值是否为NaN,忽略这些。
这就是我现在所处的位置:
vert_deviation = 0;
idx = 1;
while idx <= numel(my_data(:,5)) && isnan(idx) == 0
vert_deviation = vert_deviation + ((my_data(idx,5) - horiz_line_y_val));
idx = idx + 1;
end
我知道使用&& 运算符的先决条件是我相信有两个logical 语句,但目前我不确定如何以这种方式重写这个循环。我也不明白为什么vert_deviation 现在返回NaN,但我认为这可能与我描述的第一个错误有关......
非常感谢您提供一些指导 - 提前谢谢您!
编辑:“水平线”有点过于简单化了——实际上,我需要找到由 6 个不同线段组成的距离的下限
【问题讨论】:
-
单笔金额如何:
vert_deviation = sum(((my_data(:,5) - horiz_line_y_val)), 'omitnan');? -
感谢您的回复-您发布的代码运行良好,但我应该指定水平线是一种简化-实际上,情节不同部分的下限会发生变化,我需要检查散点图上给定 pt 的 x 值范围。
-
请edit 这个问题包含一个真正的minimal reproducible example,而不是过于简单化。
-
请edit问题包含您在下面写的信息。下面的空间是为您发布的问题的答案保留的,而不是为 cmets 的答案。
-
这是我发布的问题的解决方案,因此我将其作为答案上传。在 OP 中也添加了说明。
标签: matlab conditional-statements