【发布时间】:2018-02-22 04:12:35
【问题描述】:
我在 Matlab 中有一个复杂的数组
x = [2+1i, 0.1+3i, 0.001+4i, 5+0.0002i, 6+0.0013i]
如果实部或虚部小于某个容差,我想让它们为零。
例如,如果实际容差是 0.01,虚容差是 0.001,那么经过运算后我的数组应该是这样的:
x = [2+1i, 0.1+3i, 0+4i, 5+0i, 6+0.0013i]
当然,我可以将 x 拆分为实部和虚部,分别将它们四舍五入,然后再将它们合并。但是,实际的数组非常大(100k*100k)每个我不想浪费内存这样做。
有没有办法将复杂数组的各个部分舍入而不将其分成两部分?
【问题讨论】:
-
简单的方法是将所有数字四舍五入到某个精度:(您可以使用round或floor或以相同方式修复),“ y=round(x./accuracy).*accuracy”跨度>
-
@MendiBarel 这根本没有真正解决这个问题,这是关于分别舍入实部和虚部......
标签: matlab vectorization complex-numbers