How to read complex number from a *.csv file?

Hi,
I have to import a data set from a csv file but I cannot find any way to import the complex number from the file to Matlab to do the data processing. I try to search on the internet but no solutions are helpful. I tried importdata, csvread, textread,... but they didn't work. Can anyone show me how to solve this problem? I attached part of my csv file below. I really need help. Thanks

回答(2 个)

you can do it as follows:
[num, str, raw] = xlsread('filename.csv');
a = str2num(cell2mat(raw));

5 个评论

Thank you for answering me. I do what you recommended but matlab said: "Error using cell2mat (line 46) All contents of the input cell array must be of the same data type." Attached below is how the raw data looks, and I don't know why the input cells are not of the same data type.
Ah, maybe 0 is treated as a number, not a string. But the problem is still not solved.
can you upload your csv file for better look into your data?
Here it is. This is only a small part that I cut from the file, which is too large to upload here.
Use the following code on your data. It will work fine. I checked it for your sample data:
[num, str, raw] = xlsread('filename.csv');
rawval = double(cellfun(@(x) ~isnumeric(x), raw));
a = zeros(size(raw));
b = a;
a(rawval == 0) = cell2mat(raw(rawval == 0));
b(rawval == 1) = str2double(raw(rawval == 1));
Matrix = a + b;
I hope it helps. Good luck!

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Large Files and Big Data 的更多信息

标签

提问:

2013-12-5

评论:

2013-12-5

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by