How to import columns of complex numbers to Matlab variables from CSV file?
17 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
supun
il 3 Mar 2017
Commentato: Rahul Agnihotri
il 14 Set 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.
Risposta accettata
Walter Roberson
il 4 Mar 2017
Easiest way, R2013b or later:
datatable = readtable('VNA_S_Matrix_25mm.csv', 'Delimiter',',');
data = [datatable{:,1}, str2double(datatable{:,2:end})];
2 Commenti
Più risposte (1)
per isakson
il 4 Mar 2017
Modificato: per isakson
il 4 Mar 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 Commenti
Vedere anche
Categorie
Scopri di più su Data Import and Export in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!