最好的方式摆脱/防止函数创建复数吗?

67(30天)
你好,
我有一个函数调用 dfaedit 这有时让我复杂的数字输出。我还没有找到一个好的方法来处理这个问题除了删除复数。我在线搜索没有产生任何有用的结果。
最好的方法是什么呢?我想把所有的信息在我的数据,防止函数创建复杂的数字。
我运行的代码是:
k = 1:长度(nonglitch_xyz_h_ref)
Hurst_nonglitch_h_ref (k) = dfaedit (nonglitch_xyz_h_ref {k}, 0, 0, 0);
结束
谢谢!
3评论
Stephen23”class=
Stephen23 2022年3月2日
编辑:Stephen23 2022年3月2日
“扔掉虚部改变它的值吗?”
是的:其价值包括实部和虚部,所以当你只需要真正的一部分“改变”它的价值。
“这最好的方法是什么?”
找出 为什么 代码返回复杂的值。

登录置评。

答案(3)

约翰D 'Errico”class=
约翰D 'Errico 2022年3月1日
编辑:约翰D 'Errico 2022年3月1日
你不能强迫一个复数永远不会出现的。没有国旗你可以告诉MATLAB从来没有创建一个复数。例如,如果你有一个平方根计算,和论点恰好是负的?
你会写代码更健壮的反对这种情况发生?嗯,是的。但这需要你仔细写,高质量的代码。它需要你知道哪些操作可以创建一个复杂的结果,和如何应对可能发生的事。成为一个好的程序员。

大卫Goodmanson”class=
大卫Goodmanson 2022年3月2日
编辑:大卫Goodmanson 2022年3月2日
你好杰弗里,
删除不满意结果当然不是一个好方法来处理这个问题。我跑情况{15}从你matfile数据。在这种情况下log_Q有49个元素从49迭代。前两个条目是复杂的,其余的是真实的。我们有
log_Q = log10 (sqrt (s /穴))
罪魁祸首是s,其价值在for循环累积的49个迭代。前两个迭代值是负的,另外47是积极的,因此,复杂的结果。现在你要回去找出为什么前两个年代价值观负面。可能有一个错误,或者你将决定,算法并不适用于第一夫妇的迭代为这样那样的原因和消除这些值,这远比事后删除它们。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的