Convert file with negative value and nan to double

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

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

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,:))
@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

Products

Release

R2021b

Asked:

on 7 Feb 2022

Commented:

Jan
on 8 Feb 2022

Community Treasure Hunt

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

Start Hunting!