How to extract the fourth place of decimal of a number which is basically a flag-status?
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposta accettata
Guillaume
il 26 Gen 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 Commenti
Guillaume
il 13 Feb 2015
That's fine if speed is not critical. Converting to string is going to be a lot slower than just multiplication and modulo.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Data Type Conversion in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!