我想在txt文件中将COMPLEX数据读入MATLAB中的1D数组。我是MATLAB的新手。请帮帮我。
请原谅我这个含糊不清的问题。诚挚道歉..
实际上我有一个.txt文件,其中包含表示复数的字符串(.txt文件中的单行代表),例如:
1 + 3i的
我
-1-i的
所以......
我想在 1 * N 矩阵中读取相同的内容(其中 N 表示.txt文件中的复数的数量) MATLAB 。我怎么可能这样做?
答案 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”组成的行。这是一种耻辱。