How to import columns of complex numbers to Matlab variables from CSV file?
9 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
supun
am 3 Mär. 2017
Kommentiert: Rahul Agnihotri
am 14 Sep. 2021
I want to import the complex numbers in the attached file to matlab preferably as follows,
S11=the data in column B from 2nd row to 5th row and so on.
Thank you.
Akzeptierte Antwort
Walter Roberson
am 4 Mär. 2017
Easiest way, R2013b or later:
datatable = readtable('VNA_S_Matrix_25mm.csv', 'Delimiter',',');
data = [datatable{:,1}, str2double(datatable{:,2:end})];
2 Kommentare
Weitere Antworten (1)
per isakson
am 4 Mär. 2017
Bearbeitet: per isakson
am 4 Mär. 2017
textscan (and readtable) reads complex numbers. Valid form for a complex number is:   ±<real>±<imag>i|j. Example: 5.7-3.1i.
The problem with your file is the spaces surrounding the sign of the imaginary part.
If the entire file fits in memory, this is a way to read it.
str = fileread( 'VNA_S_Matrix_25mm.csv' );
str = strrep( str, ' ', '' ); % remove spaces
cac = textscan( str, '%*f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f' ...
, 'Headerlines',1, 'Delimiter',',', 'CollectOutput',true );
and look at the result
>> cac
cac =
[4x16 double]
>> cac{1}(1:2)
ans =
0.1978 + 0.0323i -0.0270 - 0.1628i
>> cac{1}(4,15:16)
ans =
0.2387 - 0.0561i -0.3137 - 0.0229i
>>
0 Kommentare
Siehe auch
Kategorien
Mehr zu Data Import and Export finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!