read files and check if something is number
3 views (last 30 days)
Show older comments
AIKATERINI KOLIOUKOU
on 12 Jan 2021
Answered: Mathieu NOE
on 13 Jan 2021
i try to read files line by line
the files are like that : Strength: 438439
B: 489893
C: nothing
D: 832
i want to read the file and as a result i'd like to have Strength=438439 etc. and if i find something that is not a number (like the variable C) an error must appear
how do i check this?
0 Comments
Accepted Answer
Mathieu NOE
on 13 Jan 2021
hello see the different options in code below
my prefered one is the second
a=readcell('test.txt',"Delimiter",":");
% % option 1 : create a structure :
% for ci = 1:size(a,1)
% Varnames{ci} = matlab.lang.makeValidName(a{ci,1});
% myStruct.(Varnames{ci}) = a{ci,2};
% end
% option 2 using assignin (in function variableCreator) :
for ci = 1:size(a,1)
% change blanks in variable names to underscore (otherwise
% variableCreator will throw an error mesage
str = strrep(a{ci,1}, ' ', '_');
val = a{ci,2};
if ischar(val)
disp(['error : non numeric data in line : ' int2str(ci)]);
val = NaN;
end
variableCreator ( str, val )
end
clear str val a ci
% option 3 creating a table - one line engine !
% T = array2table(a)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function variableCreator ( newVar, variable )
assignin ( 'caller', newVar, variable );
end
0 Comments
More Answers (0)
See Also
Categories
Find more on Whos in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!