从文件中读取MATLAB中的复杂数据

时间:2013-12-12 08:03:29

标签: matlab complex-numbers

我想在txt文件中将COMPLEX数据读入MATLAB中的1D数组。我是MATLAB的新手。请帮帮我。

请原谅我这个含糊不清的问题。诚挚道歉..

实际上我有一个.txt文件,其中包含表示复数的字符串(.txt文件中的单行代表),例如:

1 + 3i的

-1-i的

所以......

我想在 1 * N 矩阵中读取相同的内容(其中 N 表示.txt文件中的复数的数量) MATLAB 。我怎么可能这样做?

1 个答案:

答案 0 :(得分:3)

我假设你的意思是你有一个包含两列的文本文件,即实部和虚部。在这种情况下,您可以这样做:

>> type cplx.txt % real and imaginary parts are two columns
1 2
3 4
5 6
>> rawData = dlmread('cplx.txt')

rawData =

     1     2
     3     4
     5     6

>> complexData = complex(rawData(:, 1), rawData(:, 2))

complexData =

   1.0000 + 2.0000i
   3.0000 + 4.0000i
   5.0000 + 6.0000i

修改

好的,使用该文件格式,您应该能够使用TEXTSCAN。

>> type cplx2.txt

1+3i
1i
2
4-4i
>> fid = fopen('cplx2.txt', 'rt');
>> x = textscan(fid, '%f');
>> fclose(fid);
>> x{1}

ans =

  1.000000000000000 + 3.000000000000000i
  0.000000000000000 + 1.000000000000000i
  2.000000000000000 + 0.000000000000000i
  4.000000000000000 - 4.000000000000000i

请注意,TEXTSCAN无法自行处理由“i”组成的行。这是一种耻辱。