当只有一个元素变得复杂时,为什么Matlab会创建虚部


K>> asdfasdf=[1 1 1]
asdfasdf =
 1     1     1
K>> asdfasdf(4)=-2.3604 + 0.1536i
asdfasdf =
1.0000 + 0.0000i   1.0000 + 0.0000i   1.0000 + 0.0000i  -2.3604 + 0.1536i

为什么前三个元素突然变得复杂了?我该如何阻止Matlab这样做?真实就是真实。这不应该仅仅因为另一个元素是虚的就变成虚的。

complex属性是数组的属性,而不是每个条目的属性。如果一个条目需要复杂,那么所有条目都是复杂的;或者更确切地说,阵列是

你说

真实的

real也是复杂的。虚部为零的复数与实数相同(具有相同的值(。

数字示例:

>> x = 3; % real number
>> y = complex(3, 0); % force to be complex
>> whos x y % check that x is real and y is complex
  Name      Size            Bytes  Class     Attributes
  x         1x1                 8  double              
  y         1x1                16  double    complex   
>> x==y % are they equal?
ans =
     1

阵列示例:

>> x = [2 3 4]; % real values: x is real
>> y = [x, 5+6j]; % include a complex value: y becomes complex
>> x(1:3)==y(1:3) % equal values?
ans =
     1     1     1

最新更新