How to extract the fourth place of decimal of a number which is basically a flag-status?
    1 vue (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
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 commentaires
Réponse acceptée
  Guillaume
      
      
 le 26 Jan 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 commentaires
  Guillaume
      
      
 le 13 Fév 2015
				That's fine if speed is not critical. Converting to string is going to be a lot slower than just multiplication and modulo.
Plus de réponses (0)
Voir également
Catégories
				En savoir plus sur Data Type Conversion dans Help Center et File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
