How to extract the fourth place of decimal of a number which is basically a flag-status?
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
TP Das
el 26 de En. de 2015
Comentada: Guillaume
el 13 de Feb. de 2015
I have a multicolumn datafile where the last coloun presents numbers like 3.2341, 2.3450, 1.2320, 8.9871. The fourth place of decimal is always either 1 or 0. If it is 1, it represents a certain flag to be 'ON', otherwise, it is 'OFF'. How to extract this flag information from these numbers?
0 comentarios
Respuesta aceptada
Guillaume
el 26 de En. de 2015
Read your datafile however you want (using textscan, or csvread, or dlmread, or readtable) into a matrix. For example,
m = cell2mat(textscan(fid, '%f %f %f %f')); %or whatever the format is
Multiply the last column of your matrix by 10000, round it just to be sure, and take the modulo with 2 and you get your flag:
m = [1 2 3 3.2341; 4 5 6 2.3450; 7 8 9 1.2320; 10 11 12 8.9871]; %for example
flag = mod(round(m(:, end) * 1e4), 2)
2 comentarios
Guillaume
el 13 de Feb. de 2015
That's fine if speed is not critical. Converting to string is going to be a lot slower than just multiplication and modulo.
Más respuestas (0)
Ver también
Categorías
Más información sobre Data Type Conversion en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!