Convert file with negative value and nan to double

3 views (last 30 days)
I am using the below code to import data from another file and to convert commas to dots to be able to plot the values from different files on Matlab. This code works for me except for these two attached files where I get an error message "Conversion to double from struct is not possible." Does anyone know why it does not work for these two files and know a solution for that problem?
a1_Au1EchemPEG = importdata('Au_1_E_chem_experiment_SPR_angle_offset_after_PEG.dat');
b1_Au1EchemPEG = strrep(a1_Au1EchemPEG,',','.');
c1_Au1EchemPEG = cell2mat(cellfun(@str2num,b1_Au1EchemPEG,'un',0));

Accepted Answer

Jan
Jan on 7 Feb 2022
importdata is extremely smart.Try this:
S = fileread('Au_1_E_chem_experiment_SPR_angle_offset_after_PEG.dat');
S = strrep(S, ',', '.');
D = sscanf(S, '%g', [2, inf]);
  2 Comments
Mohamed Asaad
Mohamed Asaad on 7 Feb 2022
Tank you very much! It works for the files that i have atttached in the question.
However, the plot does not work for this new attached file. The code that i have attached in my question worked for this file. Do you know why this is the case?
When i run your code for the the above attached files i get that:
D = 2x2932 double.
But when i run the below code for the new attched file i get:
c1_Au1Echem = [ ]
a1_Au1Echem = fileread('Au_1_E_chem_experiment_SPR_angle.dat');
b1_Au1Echem = strrep(a1_Au1Echem,',','.');
c1_Au1Echem = sscanf(b1_Au1Echem, '%g', [2, inf]);
plot(c1_Au1Echem(1,:), c1_Au1Echem(2,:))
hold on
plot(c1_Au1Echem(1,:), c1_Au1Echem(6,:))
Jan
Jan on 8 Feb 2022
@Mohamed Asaad: The new file starts with a header line, which contains the names of the columns. You can open your .dat files with a text editor to check this.

Sign in to comment.

More Answers (0)

Categories

Find more on Large Files and Big Data in Help Center and File Exchange

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!