read files and check if something is number

조회 수: 3 (최근 30일)
AIKATERINI KOLIOUKOU
AIKATERINI KOLIOUKOU 2021년 1월 12일
답변: Mathieu NOE 2021년 1월 13일
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?

채택된 답변

Mathieu NOE
Mathieu NOE 2021년 1월 13일
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개)

카테고리

Help CenterFile Exchange에서 Whos에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by