gpt4 book ai didi

matlab - Matlab的 "complex"函数有什么意义?

转载 作者:太空宇宙 更新时间:2023-11-03 19:49:49 25 4
gpt4 key购买 nike

c=complex(a,b) 在 matlab 中比 c=a+1i*b 慢得多。

以下为Matlab 2018a

a=rand(15000);
b=rand(15000);

%
clear c;
tic; c=a+1i*b; toc
Elapsed time is 0.338525 seconds

%
clear c;
tic; c=complex(a,b); toc
Elapsed time is 2.542403 seconds.

complex 在任何情况下真的有用吗?为什么这么慢?

最佳答案

我想补充一些历史观点:

在 R2018a 之前的 MATLAB 版本中,复数在内部存储在单独的实数和虚数数组中。因此,complex 的结果可以指向两个输入数组的数据。因此,complex(a,b)a+1i*b 相比,速度非常快且内存效率高,后者实际上需要进行算术运算并创建新的内存存储。

在当前版本的 MATLAB 中,复数据以“交错格式”存储,这意味着它是单个数组,每个数组元素的实数值和复数值彼此相邻。这意味着需要以任何一种格式复制数据,complex 已失去其值(value)。

关于matlab - Matlab的 "complex"函数有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51813668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com